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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [ORACLE-PL/SQL] [Résolu] Trigger et appel de procédure externe

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ORACLE-PL/SQL] [Résolu] Trigger et appel de procédure externe

n°1483555
lolobreizh
Posté le 29-11-2006 à 10:35:17  profilanswer
 

Bonjour,
Je souhaite créer un trigger Oracle qui lance une procédure externe.
La procédure (appelée SHELL) fonctionne bien quand je la lance directement depuis une session SQL avec la commande EXEC.
 
Voilà où j'en suis actuellement :

Code :
  1. CREATE OR REPLACE TRIGGER "SVM810"."ENVOISTRS"
  2. AFTER UPDATE OF "JCJOBSTS" ON "SVM810"."F986110" FOR EACH ROW
  3. DECLARE
  4.    lignecmd VARCHAR2(100);
  5. BEGIN
  6.    IF (:new.jcjobsts = 'D') THEN
  7.       lignecmd := '''/exploit/scripts/envoiSTRS ' || :new.jcfndfuf2 || '''';
  8.   exec shell(lignecmd);
  9.   update svm810.F986110 set JCJOBPTY='9' where JCJOBNBR=:new.jcjobnbr and :new.jcjobsts='D';
  10.    ELSIF (:new.jcjobsts = 'E') THEN
  11.    dbms_output.put_line( '2' ) ;
  12.    END IF;
  13.    EXCEPTION
  14.      WHEN OTHERS THEN
  15.        -- Consider logging the error and then re-raise
  16.        RAISE;
  17. END ENVOISTRS;
  18. /


A la compilation j'ai l'erreur suivante sur la ligne 8 :
PLS-00103: Symbole "SHELL" rencontré à la place d'un des symboles suivants :
 
   := . ( @ % ;
Symbole ":=" a été substitué à "SHELL" pour continuer.
 
Avez-vous une idée ?
Merci d'avance.
Lolobreizh


Message édité par lolobreizh le 30-11-2006 à 15:22:18
mood
Publicité
Posté le 29-11-2006 à 10:35:17  profilanswer
 

n°1483588
lolobreizh
Posté le 29-11-2006 à 11:16:11  profilanswer
 

Bon déjà ça doit pas être l'instruction EXEC qu'il faut utiliser mais l'instruction CALL.
Mais ça ne résoud pas mon problème.J'ai toujours la même erreur.
Merci pour votre aide.
Cordialement,

n°1483771
MagicBuzz
Posté le 29-11-2006 à 15:11:24  profilanswer
 

j'allais le dire... exec dans un trigger, c'est moyen.
 
http://www.google.com/search?hl=fr [...] rigger&lr=
first link :o
 
d'après le souci du gars (ps qui marche trop bien :o) faut ni call ni exec... juste le nom de ta ps comme ça au milieu du code.


Message édité par MagicBuzz le 29-11-2006 à 15:11:34
n°1484371
lolobreizh
Posté le 30-11-2006 à 15:21:24  profilanswer
 

Finalement, j'ai trouvé.
Il semble qu'une procédure stockée ne soit pas utilisable.
En revanche une fonction, elle, passe bien.
Mon problème est résolu.
Merci pour cette réponse.
Cordialement,

n°1484583
moi23372
Posté le 30-11-2006 à 19:36:40  profilanswer
 

bien sure qu'on sait appelé une procédure dans un trigger...  
 
Pour ton info, il n'y a pas de différence entre une fonction et une précédure ormi que l'une renvoie une valeur...


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

  [ORACLE-PL/SQL] [Résolu] Trigger et appel de procédure externe

 

Sujets relatifs
Résolu - Signification de cette ligne ?[PHP/MySql] [Resolu merci !]Insertion de données temporaire.
[VBA - Excel] - RESOLU - Erreur de focus sur fonction "simple"[Résolu] Invalidate -> éviter le clignottement
[SQL] Besoin d'aide sur les attributs pour une requete[SGBD/SQL] lenteur mysql/windows
[ RESOLU ] Probleme avec les sessions de chez freeTester le code IE6 quand on est sous IE7? [résolu!]
[Résolu]Probleme d'affichage des info contenu dans la base de donnéessymbole non resolu au link d'une dll
Plus de sujets relatifs à : [ORACLE-PL/SQL] [Résolu] Trigger et appel de procédure externe


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