IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Oracle Discussion :

pb: statement ignored


Sujet :

SQL Oracle

  1. #1
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 11
    Par défaut pb: statement ignored
    Bonsoir,
    J'essaie de fair un trigger et j'ai l'erreur suivante :
    ERROR at line 11: PL/SQL: Statement ignored



    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    CREATE or replace TRIGGER date_retour_trigger
    BEFORE INSERT ON emprunte
    FOR EACH ROW
     
    DECLARE 
    CURSOR curseur IS
                    select categorie from emprunte em, exemplaires ex, documents d where em.id_exemplaire=ex.id_exemplaire and ex.reference_doc=d.reference_doc and em.id_exemplaire=:new.id_exemplaire;
             	id curseur%ROWTYPE;
    BEGIN
    	OPEN curseur;
     
    	FETCH curseur INTO id;
            WHILE(curseur%FOUND) LOOP
            if (id.categorie='livres') then
                 :new.date_retour:=ADD_DAY(:new.date_emprunt, 8 );
                  dbms_output.put_line('la date '|| :new.date_retour);
            end if;
              FETCH curseur INTO id;
    		  END LOOP;
    	CLOSE curseur;
     
    end date_retour_trigger;
    J'ai testé ma requête et elle fonctionne bien alors je comprends pas.
    Un peu d'aide serait cool.
    Merci

  2. #2
    Membre Expert Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Par défaut
    Employer plutot la boucle curseur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    CREATE OR REPLACE TRIGGER date_retour_trigger
       BEFORE INSERT
       ON emprunte
       FOR EACH ROW
    DECLARE
       CURSOR curseur
       IS
          SELECT categorie
            FROM emprunte em, exemplaires ex, documents d
           WHERE em.id_exemplaire = ex.id_exemplaire
             AND ex.reference_doc = d.reference_doc
             AND em.id_exemplaire = :NEW.id_exemplaire;
    
       ID   curseur%ROWTYPE;
    BEGIN
       FOR ID IN curseur
       LOOP
          IF (ID.categorie = 'livres')
          THEN
             :NEW.date_retour := add_day (:NEW.date_emprunt, 8);
             DBMS_OUTPUT.put_line ('la date ' || :NEW.date_retour);
          END IF;
       END LOOP;
    END date_retour_trigger;
    PS : un dbms_output dans un trigger, je vois pas tres bien ce que ca peut donner !


    D'autre part, on ne peut pas faire un SELECT sur la table emprunte dans un trigger sur cette même table (problème de table mutante !)

  3. #3
    Membre Expert Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Par défaut
    La requete marche aussi bien comme ca, non ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT categorie
            FROM exemplaires ex, documents d
           WHERE ex.reference_doc = d.reference_doc
             AND ex.id_exemplaire = :NEW.id_exemplaire;

  4. #4
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    faut pas de DECLARE il me semble

Discussions similaires

  1. ERROR = SQL Statement ignored
    Par amirovisch dans le forum PL/SQL
    Réponses: 16
    Dernier message: 26/05/2011, 09h20
  2. INSERT dans unr Procédure = SQL Statement ignored
    Par jonathan3357 dans le forum PL/SQL
    Réponses: 7
    Dernier message: 20/05/2009, 10h10
  3. [TWebBrowser][Javascript] Ignorer erreurs Javascript
    Par ludo.guy dans le forum Composants VCL
    Réponses: 3
    Dernier message: 09/01/2004, 01h07
  4. Réponses: 2
    Dernier message: 16/05/2003, 10h14
  5. [PostgreSQL] Refus de STATEMENT dans un trigger
    Par alex2205 dans le forum Requêtes
    Réponses: 3
    Dernier message: 10/03/2003, 12h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo