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 Oracle Discussion :

TDU et tables


Sujet :

SQL Oracle

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Décembre 2006
    Messages : 30
    Points : 24
    Points
    24
    Par défaut TDU et tables
    bonjour,

    j'ai un petit soucis avec les TDU, voilà j'ai crée deux type de données
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      CREATE TYPE typeadresse AS OBJECT ( 
                                       rue VARCHAR2(30),
                                       code_postale VARCHAR2(8) 
                                       );
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    CREATE TYPE typepersonne AS OBJECT ( 
                                        nom VARCHAR2(15), 
                                        prénom 1 VARCHAR2 (15),
                                        prénom 2 VARCHAR2 (15), 
                                        date_naiss DATE, 
                                        lieu_naiss VARCHAR2 (15),
                                        num_tel VARCHAR2 (10), 
                                        sexe VARCHAR2 (10)
                                        );
    le problème se pose quand je veux utilisé le type personne quand je crée la table employés
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    CREATE TABLE employés of typepersonne( 
                                        id_employe INTEGER CONSTRAINT pk_emplyés PRIMARY KEY, 
                                        adresse typeadresse, 
                                        experience VARCHAR2 (8), 
                                        fonction VARCHAR2 (20),
                                        agence INTEGER CONSTRAINT  fk_employés_to_agences REFERENCES agences(id_agence) 
                                        );
    quand j'exécute, j'ai la réponse suivante qui s'affiche et je ne comprend pas d'où vient l'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ORA-02330: la spécification du type de données n'est pas autorisée
    si quelqu'un sait ou est l'erreur s.v.p

  2. #2
    Membre expérimenté Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Points : 1 332
    Points
    1 332
    Par défaut
    Citation Envoyé par pmyriam Voir le message
    bonjour,

    j'ai un petit soucis avec les TDU, voilà j'ai crée deux type de données
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      CREATE TYPE typeadresse AS OBJECT ( 
                                       rue VARCHAR2(30),
                                       code_postale VARCHAR2(8) 
                                       );
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    CREATE TYPE typepersonne AS OBJECT ( 
                                        nom VARCHAR2(15), 
                                        prénom 1 VARCHAR2 (15),
                                        prénom 2 VARCHAR2 (15), 
                                        date_naiss DATE, 
                                        lieu_naiss VARCHAR2 (15),
                                        num_tel VARCHAR2 (10), 
                                        sexe VARCHAR2 (10)
                                        );
    le problème se pose quand je veux utilisé le type personne quand je crée la table employés
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    CREATE TABLE employés of typepersonne( 
                                        id_employe INTEGER CONSTRAINT pk_emplyés PRIMARY KEY, 
                                        adresse typeadresse, 
                                        experience VARCHAR2 (8), 
                                        fonction VARCHAR2 (20),
                                        agence INTEGER CONSTRAINT  fk_employés_to_agences REFERENCES agences(id_agence) 
                                        );
    quand j'exécute, j'ai la réponse suivante qui s'affiche et je ne comprend pas d'où vient l'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ORA-02330: la spécification du type de données n'est pas autorisée
    si quelqu'un sait ou est l'erreur s.v.p

    Bonjour,

    La syntaxe pour les DATATYPE oracle n'est pas bonne

    Integer n'existe pa en Oracle

    http://download.oracle.com/docs/cd/B...001.htm#i54330

    La syntaxe de PRIMARY KEY n'est pas bonne ...

    Tu pexu partir d'un truc comme ca

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CREATE TABLE employes (
                                        id_employe number ,
                                        adresse typeadresse,
                                        experience VARCHAR2 (8),
                                        fonction VARCHAR2 (20),
                                        agence number,
                                        CONSTRAINT pk_emplyes  PRIMARY KEY (id_employe)
                                    ---     CONSTRAINT  fk_employes_to_agences REFERENCES agences(id_agence)
                                        )
    /

    Il faut voir ici la syntaxe pour les TYPE

    http://download.oracle.com/docs/cd/B...t.htm#ADOBJ001

    asktom.oracle.com tahiti.oracle.com otn.oracle.com

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.


    phrase chinoise issue du Huainanzi

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Décembre 2006
    Messages : 30
    Points : 24
    Points
    24
    Par défaut
    bonjour,
    ben pour "integer" je ne savais pas mais pour la syntaxe de la clé primaire je l'ai pris du cours rudiments sql pour oracle c'est étonnant
    merci infiniment de m'avoir corrigée, ça va me permettre d'avancer

  4. #4
    Membre expérimenté Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Points : 1 332
    Points
    1 332
    Par défaut
    Il ya plusieurs maniere de creer une table avec cle primaire

    Effectivment la doc est bonne

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    create table clients
      2  (
      3  numero number (6) constraint pk_client primary key,nom varchar2(63) not null,
      4  prenom varchar2(63),
      5  naissance date
      6  )
      7  ;
     
    Table created.

    C'est le INTEGER qui m'a induit en erreur ...

    N'hesite pas a aller sur tahiti.oracle.com pour voir la doc officielle , c'est gratuit !

    asktom.oracle.com tahiti.oracle.com otn.oracle.com

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.


    phrase chinoise issue du Huainanzi

  5. #5
    Membre à l'essai
    Inscrit en
    Décembre 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Décembre 2006
    Messages : 30
    Points : 24
    Points
    24
    Par défaut
    bonsoir,
    merci le site de tahiti.oracle.com est vraiment bien, cependant je rencontre un petit problème avec la clé étrangère
    voilà, je doit mettre la clé étrangère id_agence dans trois tables, client, employés et voitures , une fois que je l'ai mise dans la table voiture, quand je veux la mettre dans employés, on me répond
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ORA-02264: nom déjà utilisé par une contrainte existante
    voici la syntaxe que j'utilise pour foreign key
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     num_agence NUMBER(5) CONSTRAINT fk_employés_to_agences REFERENCES agences (id_agence)
    portant j'ai changé le nom, une je l'ai mise agence et celle ci c'est num_agence mais rien à faire

  6. #6
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    Le nom de la contrainte c'est fk_employes_to_agences (sans accent c'est mieux)

Discussions similaires

  1. passage d'un nom de table dans une procédure stockée
    Par thierry V dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 26/07/2010, 16h48
  2. Réparation table/entête endommagée
    Par tbesrour dans le forum Paradox
    Réponses: 15
    Dernier message: 27/11/2007, 10h42
  3. [ADO] Tester l'existence d'une table
    Par nd25 dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 05/09/2002, 13h55
  4. Newbie......compilateur et table de caractères
    Par Cyberf dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 21/08/2002, 14h29
  5. [Comparatifs] Limites nombres tables et quantité de données
    Par benj63 dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 13/06/2002, 21h31

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