Trigger appel Fonction Java

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
Configuration: Windows 2003
Firefox 2.0.0.13

4 réponses

  1. 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
    1. merci pour votre réactivité, c'est résolu !!

      vive CCM
      0
  2. De rien ;-) Passe ton post en "résolu" stp.
    1
    1. c'est le || la concaténation en SQL et non le +
      0
      1. merci pour votre réponse,

        j'ai remplacé le + par ||, mais ca marche toujours pas !!!!
        0
    2. 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
      1. 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