Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/03/2011, 03h07   #1
Invité de passage
 
Homme
Conseil - Consultant en systèmes d'information
Inscription : mars 2011
Messages : 1
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Conseil - Consultant en systèmes d'information
Secteur : Santé

Informations forums :
Inscription : mars 2011
Messages : 1
Points : 0
Points : 0
Par défaut CREATE DOMAIN sous Oracle

Bonjour,

Je dois gérer une table Evaluation concernant des notes d'étudiants dans différentes matières.

Pour l'instant, toutes ces notes sont codées par un DECIMAL(4,2), et pour chaque ligne, je dois mettre des contraintes de vérification du style NoteMatiere1 DECIMAL(4,2) CHECK (NoteMatiere1 BETWEEN 0 AND 20) (et ainsi de suite pour la bonne douzaine de matières).

Très sincèrement, cela m'embête énormément de devoir faire un copier-coller des contraintes pour chaque attribut de note de la table : ça alourdit le fichier de création des tables.

J'ai donc voulu créer un nom de domaine, comme sous MySQL, avec la syntaxe suivante (en respectant la syntaxe SQL standard) :
Code :
CREATE DOMAIN Note AS DECIMAL(4,2) CHECK (VALUE BETWEEN 0.0 AND 20.0);
J'aurai pu réutiliser ce nom de domaine pour la définition des attributs dans la table, et faciliter sa lecture. Mais, lors de la définition du domaine sous SQL/PLUS, j'ai eu le message d'erreur suivant
Citation:
"ORA-00901: commande CREATE non valide.
Comment se fait-il qu'ORACLE ne gère pas cet aspect de la norme SQL? Avez-vous une solution? Est-ce que la solution passe par la définition d'un type défini par l'utilisateur*?


Merci pour vos réponses

Cordialement
sparwari est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2011, 11h08   #2
Expert Confirmé Sénior


 
Avatar de laurentschneider
 
Homme Laurent Schneider
Administrateur de base de données
Inscription : décembre 2005
Messages : 2 925
Détails du profil
Informations personnelles :
Nom : Homme Laurent Schneider
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Finance

Informations forums :
Inscription : décembre 2005
Messages : 2 925
Points : 4 547
Points : 4 547
copier coller est sûrement la meilleure solution.

je ne créerais sûrement pas un type par paresse de taper plusieurs fois CHECK (n between 0 and 20)
__________________
Mon blog : laurentschneider.com
Mon livre : Advanced Oracle SQL Programming
laurentschneider est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h38.


 
 
 
 
Partenaires

Hébergement Web