Erreur script SQL

Fermé
Lev94 - Modifié par KX le 17/02/2017 à 20:36
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 - 18 févr. 2017 à 03:29
Bonjour,

Quelqu'un voit le problème dans ce script?

DROP SEQUENCE seqClient;
DROP SEQUENCE seqPrescription;
DROP SEQUENCE seqMedicament;
DROP SEQUENCE seqMedecin;
DROP SEQUENCE seqRenou;
ALTER TABLE RX_prescription DROP CONSTRAINT RX_prescription_NoCli_fk;
ALTER TABLE RX_RENOUVELLEMENT DROP CONSTRAINT RX_renouvellement_NoPres_fk;

PROMPT Destruction des tables
DROP TABLE RX_client;
DROP TABLE RX_renouvellement;
DROP TABLE RX_medicament;
DROP TABLE RX_docteur;
DROP TABLE RX_prescription;
PROMPT Création des séquences
CREATE SEQUENCE seqClient START WITH 20;
CREATE SEQUENCE seqPrescription START WITH 20;
CREATE SEQUENCE seqMedicament START WITH 20;
CREATE SEQUENCE seqMedecin START WITH 20;
CREATE SEQUENCE seqRenou START WITH 20;

PROMPT Création de la table RX_client -- Prompt la ligne dans console
CREATE TABLE RX_client(
  No   NUMBER(6),
  Prenom VARCHAR2(20) CONSTRAINT client_prenom_nn NOT NULL,
  Nom   VARCHAR2(15) CONSTRAINT client_nom_nn NOT NULL,
  Rue   VARCHAR2(30),
  Ville VARCHAR2(12) DEFAULT 'Montréal',
  Telephone  CHAR(10),
  CONSTRAINT RX_client_No_pk PRIMARY KEY (No));

PROMPT Création de la table RX_medicament
CREATE TABLE RX_medicament(
  No    NUMBER(5),
  Nom   CHAR(25),
  Prix  NUMBER(7,2),
  CONSTRAINT RX_medicament_No_pk PRIMARY KEY (No));

PROMPT Création de la table RX_docteur
CREATE TABLE RX_docteur(
  No    NUMBER(5),
  Prenom VARCHAR2(20),
  Nom   VARCHAR2(25),
  Rue   VARCHAR2(30),
  Ville VARCHAR2(20) DEFAULT 'Montréal',
  Telephone  CHAR(10),
  CONSTRAINT RX_docteur_No_pk PRIMARY KEY (No));

PROMPT Création de la table RX_prescription
CREATE TABLE RX_prescription(
  No    NUMBER(6),
  DatePres  DATE,
  NoMedi NUMBER(5),
  Quantite NUMBER(4),
  NbRenou NUMBER(2),
  NoCli  NUMBER(6),
  NoDoc NUMBER(6),
  CONSTRAINT RX_NbRenou_ck CHECK (NbRenou IN (0,1,2,3,4,5,6,7,8,9,10)),
  CONSTRAINT RX_Quantite_ck CHECK (Quantite <= 100),
  CONSTRAINT RX_prescription_No_pk PRIMARY KEY (No));

INSERT INTO RX_prescription VALUES (1, TO_DATE('01072001','DDMMYYYY'),1,50,3,1,4);
INSERT INTO RX_prescription VALUES (2, TO_DATE('15072001','DDMMYYYY'),1,25,4,2,5);
INSERT INTO RX_prescription VALUES (3, TO_DATE('22072001','DDMMYYYY'),2,40,5,3,6);
INSERT INTO RX_prescription VALUES (4, TO_DATE('28072001','DDMMYYYY'),2,50,3,4,7);
INSERT INTO RX_prescription VALUES (5, TO_DATE('01082001','DDMMYYYY'),3,20,4,5,8);
INSERT INTO RX_prescription VALUES (6, TO_DATE('12082001','DDMMYYYY'),3,30,5,6,9);
INSERT INTO RX_prescription VALUES (7, TO_DATE('15082001','DDMMYYYY'),4,50,6,7,1);
INSERT INTO RX_prescription VALUES (8, TO_DATE('17082001','DDMMYYYY'),4,40,1,8,2);
INSERT INTO RX_prescription VALUES (9, TO_DATE('22082001','DDMMYYYY'),5,29,2,9,3);
INSERT INTO RX_prescription VALUES (10, TO_DATE('24082001','DDMMYYYY'),5,30,0,1,4);

INSERT INTO RX_prescription VALUES (11, TO_DATE('26082001','DDMMYYYY'),6,20,0,1,5);
INSERT INTO RX_prescription VALUES (12, TO_DATE('27082001','DDMMYYYY'),6,50,0,2,6);
INSERT INTO RX_prescription VALUES (13, TO_DATE('01092001','DDMMYYYY'),7,50,3,3,6);
INSERT INTO RX_prescription VALUES (14, TO_DATE('08092001','DDMMYYYY'),7,29,3,4,7);
INSERT INTO RX_prescription VALUES (15, TO_DATE('12092001','DDMMYYYY'),8,40,2,5,8);
INSERT INTO RX_prescription VALUES (16, TO_DATE('18092001','DDMMYYYY'),8,20,1,6,9);
INSERT INTO RX_prescription VALUES (17, TO_DATE('24092001','DDMMYYYY'),9,30,1,7,1);
INSERT INTO RX_prescription VALUES (18, TO_DATE('26092001','DDMMYYYY'),9,30,3,8,2);
INSERT INTO RX_prescription VALUES (19, TO_DATE('29092001','DDMMYYYY'),1,30,3,9,3);

PROMPT Création de la table RX_renouvellement 
CREATE TABLE RX_renouvellement(
  No    NUMBER(6),
  DateRenou VARCHAR2(20),
  Quantite NUMBER(4),
  Prix NUMBER(7,2),
  NoPres NUMBER(6),
CONSTRAINT RX_renouvellement_qte_ck CHECK(
CONSTRAINT RX_renouvellement_No_pk PRIMARY KEY(No));

PROMPT Création des contraintes de référence
ALTER TABLE RX_prescription
    ADD CONSTRAINT RX_prescription_NoCli_fk
    FOREIGN KEY(NoCli) REFERENCES RX_client(No) on delete set null;
ALTER TABLE RX_prescription
    ADD CONSTRAINT RX_prescription_NoMedi_fk
    FOREIGN KEY(NoMedi) REFERENCES RX_medicament(No);
ALTER TABLE RX_prescription
    ADD CONSTRAINT RX_prescription_NoDoc_fk
    FOREIGN KEY(NoDoc) REFERENCES RX_docteur(No);
ALTER TABLE RX_renouvellement
    ADD CONSTRAINT RX_renouvellement_NoPres_fk
    FOREIGN KEY(NoPres) REFERENCES RX_prescription(No) on delete cascade;

Message d'erreur :

Erreur commençant à la ligne 84 de la commande :
CREATE TABLE RX_renouvellement(
  No    NUMBER(6),
  DateRenou VARCHAR2(20),
  Quantite NUMBER(4),
  Prix NUMBER(7,2),
  NoPres NUMBER(6),
CONSTRAINT RX_renouvellement_qte_ck CHECK(
CONSTRAINT RX_renouvellement_No_pk PRIMARY KEY(No))
Erreur à la ligne de commande : 91, colonne : 12
Rapport d erreur :
Erreur SQL : ORA-00920: opérateur relationnel non valide
00920. 00000 -  "invalid relational operator"


*Cause:    

*Action:
Création des contraintes de référence

Erreur commençant à la ligne 94 de la commande :
ALTER TABLE RX_prescription
    ADD CONSTRAINT RX_prescription_NoCli_fk
    FOREIGN KEY(NoCli) REFERENCES RX_client(No) on delete set null
Rapport d erreur :
Erreur SQL : ORA-02298: impossible de valider (E1185317.RX_PRESCRIPTION_NOCLI_FK) - clés parents introuvables
02298. 00000 - "cannot validate (%s.%s) - parent keys not found"


*Cause:    an alter table validating constraint failed because the table has
child records.


*Action:   Obvious
Erreur commençant à la ligne 97 de la commande :
ALTER TABLE RX_prescription
    ADD CONSTRAINT RX_prescription_NoMedi_fk
    FOREIGN KEY(NoMedi) REFERENCES RX_medicament(No)
Rapport d erreur :
Erreur SQL : ORA-02298: impossible de valider (E1185317.RX_PRESCRIPTION_NOMEDI_FK) - clés parents introuvables
02298. 00000 - "cannot validate (%s.%s) - parent keys not found"


*Cause:    an alter table validating constraint failed because the table has
child records.


*Action:   Obvious

Erreur commençant à la ligne 100 de la commande :
ALTER TABLE RX_prescription
    ADD CONSTRAINT RX_prescription_NoDoc_fk
    FOREIGN KEY(NoDoc) REFERENCES RX_docteur(No)
Rapport d erreur :
Erreur SQL : ORA-02298: impossible de valider (E1185317.RX_PRESCRIPTION_NODOC_FK) - clés parents introuvables
02298. 00000 - "cannot validate (%s.%s) - parent keys not found"


*Cause:    an alter table validating constraint failed because the table has
child records.


*Action:   Obvious

Erreur commençant à la ligne 103 de la commande :
ALTER TABLE RX_renouvellement
    ADD CONSTRAINT RX_renouvellement_NoPres_fk
    FOREIGN KEY(NoPres) REFERENCES RX_prescription(No) on delete cascade
Rapport d erreur :
Erreur SQL : ORA-00942: Table ou vue inexistante
00942. 00000 -  "table or view does not exist"


*Cause:    

*Action:

2 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
18 févr. 2017 à 03:29
Bonjour,

Vu les messages d'erreur... la bdd .. c'est ORACLE.

Ensuite.. ne serait-ce pas au niveau du check que ça bloque ?
CONSTRAINT RX_renouvellement_qte_ck CHECK(


... sachant que je ne touche pas à oracle.... mais bon... vu le code erreur...

ORA-00920 invalid relational operator
Cause: A search condition was entered with an invalid or missing relational operator.


0
tyranausor Messages postés 3545 Date d'inscription jeudi 6 août 2009 Statut Membre Dernière intervention 1 avril 2022 2 031
17 févr. 2017 à 22:59
Bonjour, je ne pense pas pouvoir t'aider pour détecter une éventuelle erreur dans cette requête SQL. Par contre, je t'invite à préciser où se trouve ton erreur (indiquer la ou les lignes) et aussi le nom de ton SGBD
-1