Posez votre question Signaler

Création de domaines sous Oracle

Manuella - Dernière réponse le 12 avril 2002 à 09:17
Bonjour,
Quelqu'un pourrait-il me rappeler comment on crée des domaines (listes de valeurs qui ne changent pas (ex: OUI/NON, mois de l'année,...)) sous Oracle, enfin plutôt sous SQL*Plus ?
Merci d'avance.
Lire la suite 

Création de domaines sous Oracle »

7 réponses
Réponse
+0
moins plus
pour un domaine vaste voici la solution conseillée :

-ce n'est qu'un exemple -

CREATE DOMAIN mois varchar(9)
CONSTRAINT bon_mois
CHECK ( VALUES IN ('janvier','février','mars',........))

maintenant tu peux créer ta tables ou tes tables en te basant sur le domaine que tu as défini

CREATE TABLE T_1 (
T_1_id ............ INT ,
T_1_nom ........ varchar(20),
.
.
.
T_1_mois........ mois , <------- utilisation du domaine
...

)

@+
zeus
Manuella - 10 avril 2002 à 09:22
Merci beaucoup !
Je vais essayer ça de ce pas...
Manuella - 10 avril 2002 à 09:42
Zut de zut ça marche pas, j'ai une erreur "Commande CREATE non valide".

Merci quand même Zeus.

Si quelqu'un a une autre solution...
Ajouter un commentaire
Réponse
+0
moins plus
là j'ai pas oracle sous la main mais essaye ceci :

on va simplifier la "chose"

CREATE DOMAIN mois AS varchar(9)
CHECK ( VALUES IN ('janvier','février','mars',........))
Manuella - 11 avril 2002 à 11:01
J'ai essayé cette nouvelle écriture mais j'ai toujours le même message d'erreur.
Apparemment il ne connaît pas le mot DOMAIN ou alors il ne faut pas passer par un CREATE.
Ne serait-il pas plus simple de créer un type utilisateur ? ou une collection ?

A bientôt...
Ajouter un commentaire
Réponse
+0
moins plus
tu as raison je viens de me réinstaller oracle
pourtant j'étais sûr que cela était possible avec avec oracle
la syntaxe fonctionne pourtant avec sybase et interbase (avec quelques petites différences)


bon là cela doit fonctionner mais le probléme est que l'on perd l'avantage de la définition de DOMAINE ... et un sacré avantage !!! :

create table mois (
mois VARCHAR(15) CONSTRAINT bon_mois CHECK (mois IN ('janvier','fev'))
);


avec la création de type utilisateur tu aurais comme avantage la possibilité de réutiliser ton nouveau type (comme j'ai essayé de te le démontrer avec les domaines )

mais ta question était : est-ce plus simple ?
je sais pas j'ai jamais utilisé la création de type
mais là je te renvoie à cette page :
http://www.laltruiste.com/courssql/type_creation.html
Manuella - 12 avril 2002 à 09:17
Merci infiniment pour tes précieux conseils Zeus !

Mon objectif en créant un domaine était de ne pas créer une nouvelle table donc je vais plutôt essayer les types.
Je vais aller jeter un coup d'oeil sur le lien, ça a l'air bien comme site...
Encore merci pour le tuyau.

Manuella
Ajouter un commentaire
Ce document intitulé « Création de domaines sous Oracle » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?