[SQL] Requêtes mal-écrites.
Résolu
Utilisateur anonyme
-
jee pee Messages postés 41521 Date d'inscription Statut Modérateur Dernière intervention -
jee pee Messages postés 41521 Date d'inscription Statut Modérateur Dernière intervention -
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 :
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 :)
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 :)
A voir également:
- Ora-00907: parenthèse de droite absente
- Logiciel sql - Télécharger - Bases de données
- Pourquoi la tnt fonctionne mal en ce moment - Guide
- Sql (+) - Forum Programmation
- Carte graphique mal branchée - Forum Carte graphique
- Requete sql pix ✓ - Forum MySQL
12 réponses
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 :-)
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 :-)
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
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
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 :)
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 :)
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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)
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)
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 :)
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 :)
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 :
Merci :)
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 :)
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 :-))
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 :-))
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)
Faut-il que je mette un virgule après la contrainte ?
Bien des choses à toi :)
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 :)
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)
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)
Salut,
GRACE A TOI, J'AI PU CREER TOUTES LES TABLES ET JE T'EN REMERCIE INFINIMENT :)
Je suis très contente !
Un petit cadeau de chez moi:)
GRACE A TOI, J'AI PU CREER TOUTES LES TABLES ET JE T'EN REMERCIE INFINIMENT :)
Je suis très contente !
Un petit cadeau de chez moi:)
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
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