[SQL] Requêtes mal-écrites.

Résolu
Bonsoir,

Je devrais créer une structure de données en utilisant les syntaxes de création des tables, des clés primaires et des clés étrangères en se basant sur un modèle physique. Suite à l'exécustion de mes requêtes SQL à l'aide de SQL* Plus Worksheet, je découvre des erreurs que je ne sais pas corriger.
Voici les requêtes que j'ai écrites :

CREATE TABLE FAMILLE
(
code_famille VARCHAR2(2),
nom_famille VARCHAR(40),
taux_rem NUMBER(6,3),
mont_rem NUMBER(18,6),
CONSTRAINT PK_FAMILLE PRIMARY KEY (code_famille));


CREATE TABLE SOUS_FAMILLE
(
code_sf VARCHAR2(4),
nom_sf VARCHAR2(40),
taux_rem NUMBER(18,6),
mont_rem NUMBER(18,6),
code_famille VARCHAR2(2),
CONSTRAINT PK_SOUS_FAMILLE PRIMARY KEY (code_sf),
CONSTRAINT FK_SOUS_FAMILLE FOREIGN KEY (code_famille),
REFERENCE FAMILLE (code_famille));


CREATE TABLE ARTICLE 
(
CODE_ART VARCHAR2(20),
CODE_SF VARCHAR2(4),
DESIGNATION_ART VARCHAR2(50),
US VARCHAR2(2),
UL VARCHAR2(2),
UL_US NUMBER(10,6),
DERNIER_PA NUMBER(18,6),
DATE_SAISIE DATE,
DATE_DERN_MODIF DATE,
CONSTRAINT PK_ARTICLE PRIMARY KEY (CODE_ART),
CONSTRAINT FK_ARTICLE FOREIGN KEY (CODE_SF),
REFERENCE SOUS_FAMILLE (CODE_SF));

CREATE TABLE MAGASIN
(
code_mag VARCHAR2(3),
linelle_mag VARCHAR2(40),
CONSTRAINT PK_MAGASIN PRIMARY KEY (code_mag));

CREATE TABLE ARTICLE_STK_MAGASIN
(
code_mag VARCHAR2(3),
code_art VARCHAR2(20),
qtit_stock NUMBER(10,3),
stock_min NUMBER(10,3),
stock_max NUMBER(10,3),
stock_alerte NUMBER(10,3),
Colonne_7 <Non défini>,
CONSTRAINT PK_ARTICLE_STK_MAGASIN PRIMARY KEY (code_mag),
CONSTRAINT PK_ARTICLE_STK_MAGASIN PRIMARY KEY (code_art),
CONSTRAINT FK_ARTICLE_STK_MAGASIN FOREIGN KEY (code_mag),
CONSTRAINT FK_ARTICLE_STK_MAGASIN FOREIGN KEY (code_art),
REFERENCE ARTICLE (CODE_SF));
                         

CREATE TABLE PRIX_ARTICLE
(
code_art VARCHAR2(20),
code_prix VARCHAR2(2),
prix NUMBER(18,6),
CONSTRAINT PK_PRIX_ARTICLE PRIMARY KEY (code_art),
CONSTRAINT PK_PRIX_ARTICLE PRIMARY KEY (code_prix),
CONSTRAINT FK_PRIX_ARTICLE FOREIGN KEY (code_art),
CONSTRAINT FK_PRIX_ARTICLE FOREIGN KEY (code_prix),
REFERENCE ARTICLE (CODE_SF));

CREATE TABLE PRIX
(
code_prix VARCHAR2(2),
libelle_prix VARCHAR2(30),
CONSTRAINT PK_PRIX PRIMARY KEY (code_prix));

CREATE TABLE TYPE_MVT
(
code_type VARCHAR2(2),
libelle VARCHAR2(30),
signe VARCHAR2(1),
CONSTRAINT PK_TYPE_MVT PRIMARY KEY (code_type));

CREATE TABLE LIGNES_MVT
(
code_type_mvt VARCHAR2(2),
num_mvt VARCHAR2(8),
date_mvt DATE,
CODE_ART VARCHAR2(20),
QUANTITE NUMBER(10,3),
CONSTRAINT FK_LIGNES_MVT FOREIGN KEY (code_type_mvt),
CONSTRAINT FK_LIGNES_MVT FOREIGN KEY (num_mvt),
CONSTRAINT FK_LIGNES_MVT FOREIGN KEY (date_mvt),
CONSTRAINT FK_LIGNES_MVT FOREIGN KEY (CODE_ART));


CREATE TABLE MOUVEMENT
(
code_type_mvt VARCHAR2(2),
num_mvt VARCHAR2(8),
date_mvt DATE,
code_type VARCHAR2(2),
montant_mvt NUMBER(18,6),
code... VARCHAR2(3),
CONSTRAINT PK_MOUVEMENT PRIMARY KEY (code_type_mvt),
CONSTRAINT PK_MOUVEMENT PRIMARY KEY (num_mvt),
CONSTRAINT PK_MOUVEMENT PRIMARY KEY (date_mvt),
CONSTRAINT FK_MOUVEMENT FOREIGN KEY (code_type));


Et voilà les erreurs qu'on m'affiche :
SQL*Plus: Release 9.0.1.0.1 - Production on Lu Fev 25 21:34:33 2008

(c) Copyright 2001 Oracle Corporation. All rights reserved.

Connecté.
Connecté.
CREATE TABLE FAMILLE
*
ERREUR à la ligne 1 :
ORA-00955: Ce nom d'objet existe déjà

CONSTRAINT FK_SOUS_FAMILLE FOREIGN KEY (code_famille),
*
ERREUR à la ligne 9 :
ORA-00905: Mot-clé absent

CONSTRAINT FK_ARTICLE FOREIGN KEY (CODE_SF),
*
ERREUR à la ligne 13 :
ORA-00905: Mot-clé absent

CREATE TABLE MAGASIN
*
ERREUR à la ligne 1 :
ORA-00955: Ce nom d'objet existe déjà

Colonne_7 <Non défini>,
*
ERREUR à la ligne 9 :
ORA-00902: Type de données non valide

CONSTRAINT PK_PRIX_ARTICLE PRIMARY KEY (code_prix),
*
ERREUR à la ligne 7 :
ORA-02260: la table ne peut avoir qu'une clé primaire

CREATE TABLE PRIX
*
ERREUR à la ligne 1 :
ORA-00955: Ce nom d'objet existe déjà

CREATE TABLE TYPE_MVT
*
ERREUR à la ligne 1 :
ORA-00955: Ce nom d'objet existe déjà

CONSTRAINT FK_LIGNES_MVT FOREIGN KEY (code_type_mvt),
*
ERREUR à la ligne 8 :
ORA-00905: Mot-clé absent

date_mvt DATE?
*
ERREUR à la ligne 5 :
ORA-00911: Caractère non valide

Merci de m'éclaircir les lanternes :)

12 réponses

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    il faut que tu fasses un fichier texte supp.sql qui supprime toutes les tables :
    drop table famille;
    drop table sous_famille;
    ...

    que tu executes ce fichier .sql avant de lancer le sql de creation, car sinon tu as les erreurs :
    ERREUR à la ligne 1 :
    ORA-00955: Ce nom d'objet existe déjà

    puisque la table existe dejà elle ne peut pas etre recrée

    * Colonne_7 <Non défini>, ça ne peut pas exister, soit tu enleves la ligne soit tu mets quelquechose comme : colonne_7 varchar2(2) sinon cela ne marchera jamais

    * pour cette erruer là, qui est présente sur le nombreuses tables :
    CONSTRAINT FK_SOUS_FAMILLE FOREIGN KEY (code_famille)
    *
    ERREUR à la ligne 9 :
    ORA-00907: Parenthèse de droite absente

    il faudrait que tu réaffiches le script que tu lances :-)

    1. Modérateur
      bonsoir,

      regarde la syntaxe des fk ici : https://www.techonthenet.com/oracle/foreign_keys/foreign_keys.php

      sur les lignes pk et fk, il ne faut pas de virgule de séparation en fin,

      une seul PK possible sur une table

      et pour pouvoir tester ton script, il faudrait que tu delete toutes les tables avant de commencer

      et il y a des lignes de description de colonnes incomplètes

      tu devrais tester chaque création individuellement pour corriger pas à pas chaque ordre sql

      cordialement
      1. Bonjour,

        Merci de ton aide et surtout du lien, le cours est bien clair :)
        J'ai corrigé les fautes que tu as signalé :

        - J'ai supprimé les virgules après la déclaration des clés primaires er étrangères.
        - J'ai complété la déclaration des références qui me manquaient, au début je ne les ai pas écrites car je n'étais pas sûre du syntaxe.

        une seul PK possible sur une table --> Dans le modèle physique qui me fut fourni, dans une table, il y a -parfois- plus d'une clé primaire.

        et pour pouvoir tester ton script, il faudrait que tu delete toutes les tables avant de commencer --> Comment je fais ? Sur SQL* Plus Worksheet, je me connecte en utilisant le nom d'utilisateur et je fais START .... (le chemin qui mène au fichier .sql) puis je recopie ce qu'il y a dans ce fichier, et je fais F5. Des erreurs existent toujours et je ne sais pas pourquoi.

        Je renvoie le code après les modifications que j'ai apportées :

        CREATE TABLE FAMILLE
        (
        code_famille VARCHAR2(2),
        nom_famille VARCHAR(40),
        taux_rem NUMBER(6,3),
        mont_rem NUMBER(18,6),
        CONSTRAINT PK_FAMILLE PRIMARY KEY (code_famille)
        );

        CREATE TABLE SOUS_FAMILLE
        (
        code_sf VARCHAR2(4),
        nom_sf VARCHAR2(40),
        taux_rem NUMBER(18,6),
        mont_rem NUMBER(18,6),
        code_famille VARCHAR2(2),
        CONSTRAINT PK_SOUS_FAMILLE PRIMARY KEY (code_sf),
        CONSTRAINT FK_SOUS_FAMILLE FOREIGN KEY (code_famille)
        REFERENCE FAMILLE (code_famille)
        );

        CREATE TABLE ARTICLE
        (
        CODE_ART VARCHAR2(20),
        CODE_SF VARCHAR2(4),
        DESIGNATION_ART VARCHAR2(50),
        US VARCHAR2(2),
        UL VARCHAR2(2),
        UL_US NUMBER(10,6),
        DERNIER_PA NUMBER(18,6),
        DATE_SAISIE DATE,
        DATE_DERN_MODIF DATE,
        CONSTRAINT PK_ARTICLE PRIMARY KEY (CODE_ART)
        CONSTRAINT FK_ARTICLE FOREIGN KEY (CODE_SF)
        REFERENCE SOUS_FAMILLE (CODE_SF)
        );

        CREATE TABLE MAGASIN
        (
        code_mag VARCHAR2(3),
        linelle_mag VARCHAR2(40),
        CONSTRAINT PK_MAGASIN PRIMARY KEY (code_mag)
        );

        CREATE TABLE ARTICLE_STK_MAGASIN
        (
        code_mag VARCHAR2(3),
        code_art VARCHAR2(20),
        qtit_stock NUMBER(10,3),
        stock_min NUMBER(10,3),
        stock_max NUMBER(10,3),
        stock_alerte NUMBER(10,3),
        Colonne_7 <Non défini>,
        CONSTRAINT PK_ARTICLE_STK_MAGASIN PRIMARY KEY (code_mag)
        CONSTRAINT PK_ARTICLE_STK_MAGASIN PRIMARY KEY (code_art)
        CONSTRAINT FK_ARTICLE_STK_MAGASIN FOREIGN KEY (code_mag)
        CONSTRAINT FK_ARTICLE_STK_MAGASIN FOREIGN KEY (code_art)
        REFERENCE MAGASIN (code_mag,code_art)
        );

        CREATE TABLE PRIX_ARTICLE
        (
        code_art VARCHAR2(20),
        code_prix VARCHAR2(2),
        prix NUMBER(18,6),
        CONSTRAINT PK_PRIX_ARTICLE PRIMARY KEY (code_art)
        CONSTRAINT PK_PRIX_ARTICLE PRIMARY KEY (code_prix)
        CONSTRAINT FK_PRIX_ARTICLE FOREIGN KEY (code_art)
        CONSTRAINT FK_PRIX_ARTICLE FOREIGN KEY (code_prix)
        REFERENCE ARTICLE (code_art,code_prix)
        );

        CREATE TABLE PRIX
        (
        code_prix VARCHAR2(2),
        libelle_prix VARCHAR2(30),
        CONSTRAINT PK_PRIX PRIMARY KEY (code_prix)
        );

        CREATE TABLE TYPE_MVT
        (
        code_type VARCHAR2(2),
        libelle VARCHAR2(30),
        signe VARCHAR2(1),
        CONSTRAINT PK_TYPE_MVT PRIMARY KEY (code_type)
        );

        CREATE TABLE LIGNES_MVT
        (
        code_type_mvt VARCHAR2(2),
        num_mvt VARCHAR2(8),
        date_mvt DATE,
        CODE_ART VARCHAR2(20),
        QUANTITE NUMBER(10,3),
        CONSTRAINT FK_LIGNES_MVT FOREIGN KEY (code_type_mvt)
        CONSTRAINT FK_LIGNES_MVT FOREIGN KEY (num_mvt)
        CONSTRAINT FK_LIGNES_MVT FOREIGN KEY (date_mvt)
        CONSTRAINT FK_LIGNES_MVT FOREIGN KEY (CODE_ART)
        REFERENCE ARTICLE (code_type_mvt,num_mvt,date_mvt,CODE_ART)
        );

        CREATE TABLE MOUVEMENT
        (
        code_type_mvt VARCHAR2(2),
        num_mvt VARCHAR2(8),
        date_mvt DATE,
        code_type VARCHAR2(2),
        montant_mvt NUMBER(18,6),
        code_mag VARCHAR2(3),
        CONSTRAINT PK_MOUVEMENT PRIMARY KEY (code_type_mvt)
        CONSTRAINT PK_MOUVEMENT PRIMARY KEY (num_mvt)
        CONSTRAINT PK_MOUVEMENT PRIMARY KEY (date_mvt)
        CONSTRAINT FK_MOUVEMENT FOREIGN KEY (code_type)
        CONSTRAINT FK_MOUVEMENT FOREIGN KEY (code_mag)
        REFERENCE TYPE_MVT (code_type,code_mag)
        );


        Bonne journée lumineuse :)
        1. Bonjour khaoula,

          il y a juste un probleme au niveau de l'ecriture de la syntaxe pour la clé etrangere c'est pas reference mais c'est REFERENCES avec un S a la fin, tu visite le site donné par l'autre personne il y a le script du programme et il faut mieux de faire un copier-coller et par la suite tu remplaces par tes propres attributs pour éviter les erreurs.

          https://www.techonthenet.com/oracle/foreign_keys/foreign_keys.php

          j'espere que ça va etre utile pour toi.

          cordialement
          1. Modérateur
            Il n'y a qu'une PK, mais elle peut comporter plusieurs champs (chp1,chp2,...)

            Avant de relancer ton script, il faudrait supprimer chaque table, par exemple dans un autre .sql qui contiendrait :
            drop table famille;
            drop table sous_famille;
            ...


            Dans ton sql, il faudrait mettre un message (avec la commande prompt) avant chaque commande, comme cela on sait sur quelle commande on a une erreur comme :

            prompt creation TABLE FAMILLE

            CREATE TABLE FAMILLE
            (
            ...

            prompt creation SOUS_FAMILLE

            CREATE TABLE SOUS_FAMILLE
            (


            Tu n'as pas recopié le resultat pour avoir la liste des erreurs, de toute façon ce sera plus lisible avec les instructions comme ci-dessus.

            ca c'est sur c'est une anomalie : Colonne_7 <Non défini>,

            il faut mettre en multi champ, par exemple :

            CONSTRAINT PK_ARTICLE_STK_MAGASIN PRIMARY KEY (code_mag,code_art)

            CONSTRAINT FK_ARTICLE_STK_MAGASIN FOREIGN KEY (code_mag,code_art)
            REFERENCES MAGASIN (code_mag,code_art)
            1. Me revoili,

              J'espère que mes questions ne sont pas trop chiantes, ce que je n'ai pas compris est le fait de créer un autre fichier .sql dans lequel je supprime les tables. Quel est son interêt ? Et dans ce fichier, il faut que je supprime "toutes" les tables ?
              Pour les clés primaires et étrangères, je les ai rassemblées dans une seule ligne, mais avec plusieurs champs.
              REFERENCES a remplacé REFERENCE.
              Pour le champ Colonne_7 <Non défini>, il est défini comme-ça dans le modèle physique, devrais-je remplacer le "non défini" par la valeur "null" ?

              Enfin, voici les erreurs qu'on me fasse sortir :

              creation TABLE FAMILLE
              CREATE TABLE FAMILLE
              *
              ERREUR à la ligne 1 :
              ORA-00955: Ce nom d'objet existe déjà

              creation TABLE SOUS_FAMILLE
              CONSTRAINT FK_SOUS_FAMILLE FOREIGN KEY (code_famille)
              *
              ERREUR à la ligne 9 :
              ORA-00907: Parenthèse de droite absente

              creation TABLE ARTICLE
              CONSTRAINT FK_ARTICLE FOREIGN KEY (CODE_SF)
              *
              ERREUR à la ligne 13 :
              ORA-00907: Parenthèse de droite absente

              creation TABLE MAGASIN
              CREATE TABLE MAGASIN
              *
              ERREUR à la ligne 1 :
              ORA-00955: Ce nom d'objet existe déjà

              creation TABLE ARTICLE_STK_MAGASIN
              CONSTRAINT FK_ARTICLE_STK_MAGASIN FOREIGN KEY (code_mag,code_art)
              *
              ERREUR à la ligne 10 :
              ORA-00907: Parenthèse de droite absente

              creation TABLE PRIX_ARTICLE
              CONSTRAINT FK_PRIX_ARTICLE FOREIGN KEY (code_art,code_prix)
              *
              ERREUR à la ligne 7 :
              ORA-00907: Parenthèse de droite absente

              creation TABLE PRIX
              CREATE TABLE PRIX
              *
              ERREUR à la ligne 1 :
              ORA-00955: Ce nom d'objet existe déjà

              creation TABLE TYPE_MVT
              CREATE TABLE TYPE_MVT
              *
              ERREUR à la ligne 1 :
              ORA-00955: Ce nom d'objet existe déjà

              creation TABLE LIGNES_MVT
              REFERENCES ARTICLE (code_type_mvt,num_mvt,date_mvt,CODE_ART)
              *
              ERREUR à la ligne 9 :
              ORA-00942: Table ou vue inexistante

              creation TABLE MOUVEMENT
              CONSTRAINT FK_MOUVEMENT FOREIGN KEY (code_type,code_mag)
              *
              ERREUR à la ligne 10 :
              ORA-00907: Parenthèse de droite absente


              J'ai appris beaucoup de choses que je n'ai pas eu l'occasion de voir lors du cours, je t'en remercie :)
              1. Resalut,

                J'ai fait ce que tu m'as demandée et ça a marché :)

                Reste une erreur est la suivante :

                CONSTRAINT FK_SOUS_FAMILLE FOREIGN KEY (code_famille)
                *
                ERREUR à la ligne 9 :
                ORA-00907: Parenthèse de droite absente

                Voici le script à la din :
                prompt creation TABLE FAMILLE 
                
                CREATE TABLE FAMILLE
                (
                code_famille VARCHAR2(2),
                nom_famille VARCHAR(40),
                taux_rem NUMBER(6,3),
                mont_rem NUMBER(18,6),
                CONSTRAINT PK_FAMILLE PRIMARY KEY (code_famille)
                );
                
                prompt creation TABLE SOUS_FAMILLE 
                CREATE TABLE SOUS_FAMILLE
                (
                code_sf VARCHAR2(4),
                nom_sf VARCHAR2(40),
                taux_rem NUMBER(18,6),
                mont_rem NUMBER(18,6),
                code_famille VARCHAR2(2),
                CONSTRAINT PK_SOUS_FAMILLE PRIMARY KEY (code_sf)
                CONSTRAINT FK_SOUS_FAMILLE FOREIGN KEY (code_famille)
                REFERENCES FAMILLE (code_famille)
                );
                
                prompt creation TABLE ARTICLE
                CREATE TABLE ARTICLE 
                (
                CODE_ART VARCHAR2(20),
                CODE_SF VARCHAR2(4),
                DESIGNATION_ART VARCHAR2(50),
                US VARCHAR2(2),
                UL VARCHAR2(2),
                UL_US NUMBER(10,6),
                DERNIER_PA NUMBER(18,6),
                DATE_SAISIE DATE,
                DATE_DERN_MODIF DATE,
                CONSTRAINT PK_ARTICLE PRIMARY KEY (CODE_ART)
                CONSTRAINT FK_ARTICLE FOREIGN KEY (CODE_SF)
                REFERENCES SOUS_FAMILLE (CODE_SF)
                );
                
                prompt creation TABLE MAGASIN
                CREATE TABLE MAGASIN
                (
                code_mag VARCHAR2(3),
                linelle_mag VARCHAR2(40),
                CONSTRAINT PK_MAGASIN PRIMARY KEY (code_mag)
                );
                
                prompt creation TABLE ARTICLE_STK_MAGASIN
                CREATE TABLE ARTICLE_STK_MAGASIN
                (
                code_mag VARCHAR2(3),
                code_art VARCHAR2(20),
                qtit_stock NUMBER(10,3),
                stock_min NUMBER(10,3),
                stock_max NUMBER(10,3),
                stock_alerte NUMBER(10,3),
                CONSTRAINT PK_ARTICLE_STK_MAGASIN PRIMARY KEY (code_mag,code_art)
                CONSTRAINT FK_ARTICLE_STK_MAGASIN FOREIGN KEY (code_mag,code_art)
                REFERENCES MAGASIN (code_mag,code_art)
                );
                
                
                prompt creation TABLE PRIX_ARTICLE
                CREATE TABLE PRIX_ARTICLE
                (
                code_art VARCHAR2(20),
                code_prix VARCHAR2(2),
                prix NUMBER(18,6),
                CONSTRAINT PK_PRIX_ARTICLE PRIMARY KEY (code_art,code_prix)
                CONSTRAINT FK_PRIX_ARTICLE FOREIGN KEY (code_art,code_prix)
                REFERENCES ARTICLE (code_art,code_prix)
                );
                
                prompt creation TABLE PRIX
                CREATE TABLE PRIX
                (
                code_prix VARCHAR2(2),
                libelle_prix VARCHAR2(30),
                CONSTRAINT PK_PRIX PRIMARY KEY (code_prix)
                );
                
                prompt creation TABLE TYPE_MVT
                CREATE TABLE TYPE_MVT
                (
                code_type VARCHAR2(2),
                libelle VARCHAR2(30),
                signe VARCHAR2(1),
                CONSTRAINT PK_TYPE_MVT PRIMARY KEY (code_type)
                );
                
                prompt creation TABLE LIGNES_MVT
                CREATE TABLE LIGNES_MVT
                (
                code_type_mvt VARCHAR2(2),
                num_mvt VARCHAR2(8),
                date_mvt DATE,
                CODE_ART VARCHAR2(20),
                QUANTITE NUMBER(10,3),
                CONSTRAINT FK_LIGNES_MVT FOREIGN KEY (code_type_mvt,num_mvt,date_mvt,CODE_ART)
                REFERENCES ARTICLE (code_type_mvt,num_mvt,date_mvt,CODE_ART)
                );
                
                prompt creation TABLE MOUVEMENT
                CREATE TABLE MOUVEMENT
                (
                code_type_mvt VARCHAR2(2),
                num_mvt VARCHAR2(8),
                date_mvt DATE,
                code_type VARCHAR2(2),
                montant_mvt NUMBER(18,6),
                code_mag VARCHAR2(3),
                CONSTRAINT PK_MOUVEMENT PRIMARY KEY (code_type_mvt,num_mvt,date_mvt)
                CONSTRAINT FK_MOUVEMENT FOREIGN KEY (code_type,code_mag)
                REFERENCES TYPE_MVT (code_type,code_mag)
                );


                Merci :)
                1. Modérateur
                  en fait j'avais été trop rapide dans ma première explication,

                  il faut bien une virgule entre chaque contrainte (mais pas sur la FK entre sa definition et la reference)

                  donc :

                  ...
                  code_famille VARCHAR2(2) ,
                  CONSTRAINT PK_SOUS_FAMILLE PRIMARY KEY (code_sf) ,
                  CONSTRAINT FK_SOUS_FAMILLE FOREIGN KEY (code_famille)
                  REFERENCES FAMILLE (code_famille)
                  );


                  on devrait approcher de la fin :-))
                  1. Bonsoir,
                    Je commence à me sentir trop lourde et j'ai honte de dire que ça génére encore des erreurs, cette fois-ci c'est différent :
                    (J'ai recopié même le résultat de l'exécution de la suppression des tables)

                    SQL*Plus: Release 9.0.1.0.1 - Production on Je Fev 28 20:37:48 2008
                    
                    (c) Copyright 2001 Oracle Corporation.  All rights reserved.
                    
                    Connecté.
                    Connecté.
                    DROP TABLE FAMILLE
                               *
                    ERREUR à la ligne 1 :
                    ORA-02449: clés uniques/primaires de la table référencées par des clés
                    étrangères
                    
                    
                    DROP TABLE SOUS_FAMILLE
                               *
                    ERREUR à la ligne 1 :
                    ORA-02449: clés uniques/primaires de la table référencées par des clés
                    étrangères
                    
                    
                    
                    Table supprimée.
                    
                    
                    Table supprimée.
                    
                    DROP TABLE ARTICLE_STK_MAGASIN
                               *
                    ERREUR à la ligne 1 :
                    ORA-00942: Table ou vue inexistante
                    
                    
                    DROP TABLE PRIX_ARTICLE
                               *
                    ERREUR à la ligne 1 :
                    ORA-00942: Table ou vue inexistante
                    
                    
                    
                    Table supprimée.
                    
                    
                    Table supprimée.
                    
                    DROP TABLE LIGNES_MVT
                               *
                    ERREUR à la ligne 1 :
                    ORA-00942: Table ou vue inexistante
                    
                    
                    DROP TABLE MOUVEMENT
                               *
                    ERREUR à la ligne 1 :
                    ORA-00942: Table ou vue inexistante
                    
                    
                    Connecté.
                    DROP TABLE FAMILLE
                               *
                    ERREUR à la ligne 1 :
                    ORA-02449: clés uniques/primaires de la table référencées par des clés
                    étrangères
                    
                    
                    
                    Table supprimée.
                    
                    DROP TABLE ARTICLE
                               *
                    ERREUR à la ligne 1 :
                    ORA-00942: Table ou vue inexistante
                    
                    
                    DROP TABLE MAGASIN
                               *
                    ERREUR à la ligne 1 :
                    ORA-00942: Table ou vue inexistante
                    
                    
                    DROP TABLE ARTICLE_STK_MAGASIN
                               *
                    ERREUR à la ligne 1 :
                    ORA-00942: Table ou vue inexistante
                    
                    
                    DROP TABLE PRIX_ARTICLE
                               *
                    ERREUR à la ligne 1 :
                    ORA-00942: Table ou vue inexistante
                    
                    
                    DROP TABLE PRIX
                               *
                    ERREUR à la ligne 1 :
                    ORA-00942: Table ou vue inexistante
                    
                    
                    DROP TABLE TYPE_MVT
                               *
                    ERREUR à la ligne 1 :
                    ORA-00942: Table ou vue inexistante
                    
                    
                    DROP TABLE LIGNES_MVT
                               *
                    ERREUR à la ligne 1 :
                    ORA-00942: Table ou vue inexistante
                    
                    
                    DROP TABLE MOUVEMENT
                               *
                    ERREUR à la ligne 1 :
                    ORA-00942: Table ou vue inexistante
                    
                    
                    creation TABLE FAMILLE
                    CREATE TABLE FAMILLE
                                 *
                    ERREUR à la ligne 1 :
                    ORA-00955: Ce nom d'objet existe déjà
                    
                    
                    creation TABLE SOUS_FAMILLE
                    
                    Table créée.
                    
                    creation TABLE ARTICLE
                    
                    Table créée.
                    
                    creation TABLE MAGASIN
                    
                    Table créée.
                    
                    creation TABLE ARTICLE_STK_MAGASIN
                    REFERENCES MAGASIN (code_mag,code_art)
                                                 *
                    ERREUR à la ligne 11 :
                    ORA-00904: Nom de colonne non valide
                    
                    
                    creation TABLE PRIX_ARTICLE
                    REFERENCES ARTICLE (code_art,code_prix)
                                                 *
                    ERREUR à la ligne 8 :
                    ORA-00904: Nom de colonne non valide
                    
                    
                    creation TABLE PRIX
                    
                    Table créée.
                    
                    creation TABLE TYPE_MVT
                    
                    Table créée.
                    
                    creation TABLE LIGNES_MVT
                    REFERENCES ARTICLE (code_type_mvt,num_mvt,date_mvt,CODE_ART)
                                        *
                    ERREUR à la ligne 9 :
                    ORA-00904: Nom de colonne non valide
                    
                    
                    creation TABLE MOUVEMENT
                    CONSTRAINT FK_MOUVEMENT FOREIGN KEY (code_type,code_mag)
                                                                   *
                    ERREUR à la ligne 10 :
                    ORA-00904: Nom de colonne non valide
                    
                    Pourtant, j'ai ajouté les virgules, je me demande si dans ce cas : 
                    prompt creation TABLE PRIX
                    CREATE TABLE PRIX
                    (
                    code_prix VARCHAR2(2),
                    libelle_prix VARCHAR2(30),
                    CONSTRAINT PK_PRIX PRIMARY KEY (code_prix)
                    );


                    Faut-il que je mette un virgule après la contrainte ?

                    Bien des choses à toi :)
                    1. Modérateur
                      pour les drop de table

                      si tu n'as pas encore creer des enregistrement dans les tables, il faudrait supprimer celles qui ont des clés étrangeres (FK) avant celle qui contient la FK de reference en fait :

                      il faut creer le pere puis le fils (avec FK) et
                      il faut supprimer le fils puis le père

                      (en lancant 3 fois le sql de drop cela devrait toutes les supprimer aussi :-))
                      -----------------------
                      Pourtant, j'ai ajouté les virgules, je me demande si dans ce cas :
                      prompt creation TABLE PRIX
                      CREATE TABLE PRIX
                      (
                      code_prix VARCHAR2(2),
                      libelle_prix VARCHAR2(30),
                      CONSTRAINT PK_PRIX PRIMARY KEY (code_prix)
                      );
                      Faut-il que je mette un virgule après la contrainte ?


                      NON, la virgule ne sert qu'à la separation s'il y a plusieurs contraintes (par exemple une PK et une FK)
                      -------------------------
                      pour les erreurs de type :

                      creation TABLE ARTICLE_STK_MAGASIN
                      REFERENCES MAGASIN (code_mag,code_art)
                      *
                      ERREUR à la ligne 11 :
                      ORA-00904: Nom de colonne non valide


                      La FK doit faire reference à un champ qui doit exister dans la table etrangère. Code_art n'est pas un champ de la table magasin, la FK doit juste être :

                      CONSTRAINT FK_ARTICLE_STK_MAGASIN FOREIGN KEY (code_mag)
                      REFERENCES MAGASIN (code_mag)
                      1. salut tout le monde , voila j'epsere bien avoir de l'aider pour a fin de detecté l'erreur

                        CREATE TABLE "FIL"
                        ( "ID_FIL" NUMBER NOT NULL ENABLE ,
                        "COULEUR" VARCHAR2(40) NOT NULL ENABLE,
                        "ID_TYPE_FIL" NUMBER NOT NULL ENABLE,

                        CONSTRAINT "FIL_PK" PRIMARY KEY ("ID_FIL") ENABLE,
                        CONSTRAINT "FIL_FK2" FORGEIN KEY ("ID_TYPE_FIL")
                        REFERENCES "TYPE_FIL" ("ID_TYPE_FIL") ON DELETE CASCADE ENABLE
                        )

                        ORA-00907: parenthèse de droite absente
                        merci
                        1. Modérateur
                          Salut,

                          il est possible que ce soit parce que tu as une ligne à blanc au milieu, la commande serait alors considérée comme terminée, mais bien sur en erreur, car incomplète.