Vous avez de la chance, PostgreSQL et Oracle sont relativement proches en terme de syntaxe.
1) Concernant les intervales, le type existe bel et bien dans Oracle mais il lui faut un "champ de précision" (je mets le terme entre guillement car il y a probablement plus clair).
Ces deux champs de précision les plus courants sont DAY TO SECOND,
et YEAR TO MONTH.
Notez que chacune de ces bornes a elle aussi une précision.
Si votre intervale va dépasser 1000 jours, il faut précisier DAY(4) TO SECOND.
Avec quelques recherches vous pourrez trouver ce qui vous siéra le mieux.
2) Oracle ne supporte pas le type booléen.
Le sujet discuté chez Tom Kytes : http://asktom.oracle.com/pls/asktom/...:6263249199595
Il préconise d'utiliser un char(1) avec une contraine de valeur :
flag char(1) check (flag in ('Y', 'N'))
3) Les séquences existent, mais si vous désirez un auto-incrément il vous faudra utiliser un trigger sur votre table, par exemple ici un trigger qui remplace un null par la séquence :
1 2 3 4 5 6 7 8
| CREATE OR REPLACE TRIGGER MyTrigger
BEFORE INSERT ON MyTable FOR EACH ROW
BEGIN
IF :new.MyTableID IS NULL THEN
SELECT MyTrigger.NEXTVAL INTO :new.MyTableID FROM DUAL;
END IF;
END;
/ |
Partager