Trigger appel Fonction Java

Fermé
titexe - 11 avril 2008 à 11:35
 Utilisateur anonyme - 15 avril 2008 à 14:24
Bonjour,

j'ai crée un trigger qui se déclenche a l'insertion d'une nouvelle ligne dans une table, ce trigger fait appel a une fonction java, dont je voudrais lui passer comme paramètres les données insérées dans les champs de cette nouvelle ligne,

La fonction fdelete ( supression d'un fichier ) :

create or replace FUNCTION fDelete (file IN VARCHAR2) RETURN NUMBER
AS LANGUAGE JAVA
NAME 'JDelete.delete (java.lang.String) return int';

le trigger :

create or replace TRIGGER trigJava
AFTER INSERT ON T4 REFERENCING NEW AS newRow FOR EACH ROW
BEGIN
File := 'c:\'+newRow.b;
DBMS_OUTPUT.PUT_LINE ( fdelete(File));
END trigJava;

y'a toujours une erreur a la création de ce trigger, je veux récuperér la donnée du champ b de la nouvelle ligne, en lui rajoutant 'c:\' pour constituer le fichier a supprimer par la fonction delete,

merci de m'aider a compléter ce trigger,

merci d'avance,

titexe
A voir également:

4 réponses

Utilisateur anonyme
15 avril 2008 à 11:55
CREATE OR REPLACE TRIGGER trigjava
   AFTER INSERT
   ON t4
   REFERENCING NEW AS newrow
   FOR EACH ROW
DECLARE
   FILE   VARCHAR2 (30);
BEGIN
   FILE := 'c:\' || :newrow.b;
   DBMS_OUTPUT.put_line(FILE);
   DBMS_OUTPUT.put_line (fdelete (FILE));
END trigjava;
4
merci pour votre réactivité, c'est résolu !!

vive CCM
0
Utilisateur anonyme
15 avril 2008 à 14:24
De rien ;-) Passe ton post en "résolu" stp.
1
Utilisateur anonyme
11 avril 2008 à 11:42
c'est le || la concaténation en SQL et non le +
0
merci pour votre réponse,

j'ai remplacé le + par ||, mais ca marche toujours pas !!!!
0
Utilisateur anonyme
14 avril 2008 à 11:32
CREATE OR REPLACE TRIGGER trigjava
   AFTER INSERT
   ON t4
   REFERENCING NEW AS newrow
   FOR EACH ROW
DECLARE
   FILE   VARCHAR2 (30);
BEGIN
   FILE := 'c:\' + :newrow.b;
   DBMS_OUTPUT.put_line (fdelete (FILE));
END trigjava;
0
Merci pour votre réponse,

le trigger est bien crée, mais je recois toujours une erreur a l'insertion de la table T4, une erreur d'exécution de trigger :

INSERT INTO "TEST"."T4" (A, B) VALUES ('1', 'test')

One error saving changes to table "TEST"."T4":
Row 7: ORA-06502: PL/SQL : erreur numérique ou erreur sur une valeur: erreur de conversion des caractères en chiffres
ORA-06512: à "TEST.TRIGJAVA", ligne 1
ORA-04088: erreur lors d'exécution du déclencheur 'TEST.TRIGJAVA'
ORA-06512: à ligne 1
0