2009-03-26 4 views
3

J'ai 2 questions OracleSQL Translating pour une utilisation avec Oracle

  1. Comment puis-je traduis cette instruction SQL Server pour travailler sur Oracle?

    Create table MyCount(Line int identity(1,1)) 
    
  2. Quel est l'équivalent de serveurs SQL Type d'image pour stocker des images dans une base de données Orace?

+0

changer le titre S'il vous plaît et je vais retirer mon downvote (mais je ne réponds de toute façon). La séquence et les déclencheurs – erikkallen

Répondre

5

Vous n'avez pas besoin d'utiliser des déclencheurs pour cela si vous gérez les inserts:

CREATE SEQUENCE seq; 

CREATE TABLE mycount 
(
    line NUMBER(10,0) 
); 

Ensuite, pour insérer une valeur:

INSERT INTO mycount(line) VALUES (seq.nextval); 

Pour les images, vous pouvez utiliser BLOB s pour stocker des données binaires ou BFILE pour gérer plus ou moins comme un BLOB mais les données sont stockées sur le système de fichiers, par exemple un fichier jpg.

Références:

+0

+1 pour éviter les déclenchements. – darasd

+0

il est sûrement temps passé oracle apporté dans les clés d'incrémentation automatique. – Martlark

+0

merci beaucoup, c'était utile – Gold

5

1: Vous devez créer une séquence et un déclencheur

CREATE SEQUENCE MyCountIdSeq; 
CREATE TABLE MyCount (
    Line INTEGER NOT NULL, 
    ... 
); 
CREATE TRIGGER MyCountInsTrg BEFORE INSERT ON MyCount FOR EACH ROW AS 
BEGIN 
    SELECT MyCountIdSeq.NEXTVAL INTO :new.Line 
END; 
/

2: blob.

+0

constituent l'option la plus sûre pour la gestion des clés.vous pouvez également les utiliser pour gérer les dates de mise à jour et les mises à jour. – Martlark

+0

Je pense que c'est une bonne idée de vérifier toute valeur existante dans le déclencheur juste au cas où vous vouliez insérer manuellement un enregistrement à un moment donné ou devoir faire des insertions en masse avec des identifiants prédéfinis. –

+0

Eh bien, si vous avez désactivé le déclencheur tout en insérant une ligne, je dirais que c'est votre problème. En outre, si vous exécutez un lot avec des déclencheurs désactivés pour les performances, mieux mettre à jour la séquence pour refléter cela. – erikkallen

1

Nos outils peuvent répondre à ces questions pour vous. Je parle d'Oracle SQL Developer.

D'abord - il a un assistant Créer une table - et 12/18c Base de données prend en charge la mise en œuvre native de colonnes d'identité.

enter image description here

Et votre nouvelle table DDL

CREATE TABLE MYCOUNT 
(
    LINE INT GENERATED ALWAYS AS IDENTITY NOT NULL 
); 

, nous avons aussi un traducteur - il peut prendre bits de SQL Server et les transformer en équivalent de bits Oracle. Il y a un assistant de migration complet qui va capturer et convertir l'ensemble de votre modèle de données.

Mais pour un compromis, vous pouvez utiliser votre Scratchpad. Il est disponible dans le menu Outils, Migrations.

Ici, il prend votre code et vous donner quelque chose qui fonctionnerait dans une base de données Oracle.

enter image description here

certainement utiliser la fonction d'identité dans 12/18c si vous êtes sur cette version d'Oracle. Moins d'objets db à maintenir.

Questions connexes