Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2730 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [oracle] pb trigger pl/sql

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[oracle] pb trigger pl/sql

n°1239731
farib
Posté le 06-11-2005 à 16:22:17  profilanswer
 

(j'ai supprimé un ancien topik sur des types date)
 
j'ai un pb avec un trigger (le premier de ma vie)
 
j'ai plusieurs tables dont:
 

CREATE TABLE CINEMA (
NOM_CI VARCHAR2(50) NOT NULL,
COMPAGNIE_CI VARCHAR2(50) NOT NULL,
ADRESSE_CI VARCHAR2(150) NOT NULL,
VILLE_CI VARCHAR2(50) NOT NULL,
TELEPHONE_CI VARCHAR2(15) NOT NULL,
CONSTRAINT PK_CINEMA primary key (NOM_CI));


CREATE TABLE FILM (
TITRE VARCHAR2(150) NOT NULL,
ANNEE INTEGER  CHECK( ANNEE BETWEEN 1800 AND 2050),
SYNOPSIS CLOB ,
DUREE INTEGER CHECK( DUREE > 0),
GUIDE_PARENTAL VARCHAR2(50),
COIMPAGNIE VARCHAR2(50),
CONSTRAINT PK_FILM primary key (TITRE));]


CREATE TABLE HORAIRE(
NOM_CI VARCHAR2(50) NOT NULL,
TITRE VARCHAR2(50) NOT NULL,
DATE_DEBUT DATE NOT NULL,
HEURE DATE NOT NULL,
DATE_FIN DATE NOT NULL,
CONSTRAINT PK_HORAIRE PRIMARY KEY (NOM_CI,TITRE,DATE_DEBUT,HEURE),
CONSTRAINT FK_HORAIRE_NOM_CI foreign key (NOM_CI) references CINEMA (NOM_CI),
CONSTRAINT FK_HORAIRE_TITRE foreign key (TITRE) references FILM (TITRE)
);


 
je souhaite créer un trigger qui vérifié qu'il n'y a pas de conflit d'horaires pour un même film dans un même cinéma

CREATE TRIGGER ach
BEFORE INSERT OR UPDATE ON HORAIRE
FOR EACH ROW
DECLARE
chevauchementBool NUMBER;
chevauchementException EXCEPTION;
BEGIN
 
SELECT COUNT(*) INTO chevauchementBool FROM HORAIRE,FILM
 WHERE Nom_ci=:new.Nom_ci  
 AND Titre=:new.Titre AND (  
 (   :new.heure BETWEEN heure AND heure+Film.duree*(1/(24*60))  )
 OR
 (   :new.heure+Film.duree*(1/(24*60)) BETWEEN heure AND heure+Film.duree*(1/(24*60))  )
 );
 
IF chevauchementBool != 0 THEN
 RAISE chevauchementException;
END IF;
EXCEPTION
WHEN chevauchementException THEN
 raise_application_error(-20000,'conflit');
END;
/


j'ai les erreurs suivantes que je ne comprend pas

SQL> show errors trigger ach;
Errors for TRIGGER ACH:
 
LINE/COL
--------------------------------------------------------------------------------
ERROR
--------------------------------------------------------------------------------
6/1
PL/SQL: SQL Statement ignored
 
8/6
PL/SQL: ORA-00918: column ambiguously defined
 


 
un idée ? :??:


Message édité par farib le 06-11-2005 à 16:22:59
mood
Publicité
Posté le 06-11-2005 à 16:22:17  profilanswer
 

n°1239791
Beegee
Posté le 06-11-2005 à 17:53:11  profilanswer
 

Le champ Titre est à la fois dans la table FILM et dans la table HORAIRE, donc dans ton SELECT COUNT(*) il faut préfixer ;)

n°1239833
farib
Posté le 06-11-2005 à 18:34:45  profilanswer
 

effectivement, c'est passé.
 
Va savoir pourquoi, ça m'a viré l'érreur du "statement ignored"

n°1239864
Beegee
Posté le 06-11-2005 à 18:58:41  profilanswer
 

Tout était lié, il faut lire la liste d'erreurs à l'envers il me semble, la requête était ignorée à cause de la colonne non aliasée.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [oracle] pb trigger pl/sql

 

Sujets relatifs
[ORACLE] Trigger renvoyant un simple WarningPb Dun Trigger en oracle
[Oracle - PL/SQL] Problème de trigger et de table inaccessiblePb d'un Trigger En Oracle
[ORACLE]Question trigger before insert : comment ne pas insérer ?[ORACLE] Trigger bien compilé qui ne marche pas bien
[ORACLE] Trigger : Erreur "mutating table"[RESOLU] [ORACLE] pb de trigger à l'insertion pl-sql
[oracle] désactiver un trigger dans une procédure[Oracle Trigger] il marche pas, je c pas pkoi
Plus de sujets relatifs à : [oracle] pb trigger pl/sql


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR