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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
"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