Erreur script SQL

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

  1. 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. Modérateur
      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.