IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Sql Developer Oracle Discussion :

SQL Oracle express


Sujet :

Sql Developer Oracle

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2
    Points : 1
    Points
    1
    Par défaut SQL Oracle express
    Je tente de créer des type abstraits de données en SQL, j'ai réussi à créer les type objet et les tables, par contre il y a une table ou j'ai besoin de créer pour un champ une liste de 3valeurs possibles, j'ai testé ENUM mais sans succès.
    Auriez-vous une méthode ?

    Merci

  2. #2
    Membre confirmé

    Homme Profil pro
    Chomeur
    Inscrit en
    Juin 2006
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Chomeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 347
    Points : 452
    Points
    452
    Par défaut
    Bonjour,

    Tu peux t'en approcher avec une contrainte "check" : docs.oracle.com , mais attention si tu manipule tes données depuis une procédure, je ne suis pas sur que le check soit effectué...
    Sinon un trigger "before insert" qui contrôle les données?

    Bon courage
    Signature à venir...
    Ancienne : Divers NTIC (PHP, Dojo, à venir...) : http://tif44.fr/blog/

  3. #3
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 763
    Points
    30 763
    Par défaut
    Et pourquoi pas une contrainte d'intégrité référentielle sur une table contenant ces valeurs de référence ?
    C'est à ça que ça sert !
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  4. #4
    Nouveau Candidat au Club
    Femme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2
    Points : 1
    Points
    1
    Par défaut SQL/Oracle
    merci pour toutes les réponses, mais je suis débutante, et je ne sais pas appliquer vos directives :
    Je vous mets ci-dessous la structure des tables à créer.
    centre (numC, ville)
    module (numM, nomM, #numC)
    etudiant (numE, nomE, prenomE)
    inscription (#numE, #numM, semestre,resultat)
    Pour le champ "resulat" : (3 valeurs possibles : validés, non validé ou en cours).


    POUR MES COMMANDES DE CREATION DE TYPE ABSTRAIT ET DE TABLE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    CREATE TYPE  "T_CENTRE" AS OBJECT
        ( numC       NUMBER(6),
          ville VARCHAR2(30));
     
    CREATE TABLE  "CENTRE" OF  "T_CENTRE" 
       ( PRIMARY KEY ("NUMC") ENABLE
       ) ;
     
    CREATE TABLE  "CENTRE" OF  "T_CENTRE" 
       ( PRIMARY KEY ("NUMC") ENABLE
       ) ;
     
     
    CREATE TYPE  "T_MODULE" AS OBJECT( 
    numM decimal(3),
    nomM varchar2(40),
    numC decimal(3));
     
    CREATE TABLE  "MODULE" OF  "T_MODULE" 
       ( PRIMARY KEY ("NUMM") ENABLE,
         FOREIGN KEY ("NUMC") REFERENCES  "CENTRE" ("NUMC") ENABLE);
     
    CREATE TYPE  "T_ETUDIANT" AS OBJECT( 
    numE decimal(3),
    nomE varchar2(20),
    prenomE varchar2(20));
     
    CREATE TABLE  "ETUDIANT" OF  "T_ETUDIANT" 
       ( PRIMARY KEY ("NUME") ENABLE
       ) ;
     
     
    CREATE TYPE  "T_INSCRIPTION" AS OBJECT (
    numE decimal(6),
    numM decimal(3),
    semestre decimal(6),
    resultat ENUM ('validé','encours','non validé'));
     
     
    CREATE TABLE "INSCRIPTION" OF "T_INSCRIPTION" ( 
    PRIMARY KEY ("NUME","NUMM","semestre") ENABLE,
    FOREIGN KEY ("NUME") REFERENCES ETUDIANT ("NUME")ENABLE,
    FOREIGN KEY ("NUMM") REFERENCES MODULE("NUMM")ENABLE);
     
    ------------------------------------------------------
    ERREUR : ORA-00902: invalid datatype
    -------------------------------------------------------

  5. #5
    Membre confirmé

    Homme Profil pro
    Chomeur
    Inscrit en
    Juin 2006
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Chomeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 347
    Points : 452
    Points
    452
    Par défaut
    Pour la contrainte "check", j'ai mis le lien vers la doc Oracle qui est relativement claire...

    Concernant la réponse de Al1_24,
    contrainte d'intégrité référentielle sur une table contenant ces valeurs
    , il s'agit de créer un nouvelle table (id, val) ne contenant comme val que les les 3 possibilités, 'validé','encours','non validé', et donc de transformer "resultat " en une clé étrangère vers cette table... Tu as déjà ce genre de structure dans les quelques lignes que tu as postées donc ça ne devrait pas te poser trop de souci.

    Les deux solutions sont possibles et ont des avantages et des inconvénients : le check ne s'applique peut être pas sur des manipulations depuis des procédures, tandis que la seconde solution nécessite de maintenir une table supplémentaire; le check est simple à écrire, mais plus contraignant à faire évoluer tandis qu'une table isolée pourra être modifiée ou complétée facilement...

    Bon courage
    Signature à venir...
    Ancienne : Divers NTIC (PHP, Dojo, à venir...) : http://tif44.fr/blog/

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/11/2008, 12h54
  2. Migration oracle 10g vers sql server Express edition
    Par Tsunamy dans le forum Administration
    Réponses: 3
    Dernier message: 14/11/2008, 12h44
  3. Importation de fichier .sql oracle express 10g
    Par piopium dans le forum Administration
    Réponses: 2
    Dernier message: 30/04/2008, 23h27
  4. MySQL, PostgreSQL , SQL MSDE, Oracle Express ?
    Par Davboc dans le forum Décisions SGBD
    Réponses: 6
    Dernier message: 19/03/2007, 12h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo