Trigger en code java

cs_sana83 Messages postés 29 Date d'inscription samedi 17 février 2007 Statut Membre Dernière intervention 9 novembre 2011 - 25 oct. 2011 à 22:02
cs_sana83 Messages postés 29 Date d'inscription samedi 17 février 2007 Statut Membre Dernière intervention 9 novembre 2011 - 28 oct. 2011 à 10:33
bonsoir,
j'ai crée un trigger T1 sous oracle. il s'exécute sans erreur et quand je supprime une ligne de la table "ss", une nouvelle ligne est ajoutée dans "ss3" .
mon problème: quand j'intégre le code du trigger dans mon programme, et je lance une requete de suppression il m'affiche une erreur
= >[b]Echec de l'execution de la requete sqlupdate :ORA-04098: Déclencheur 'SYSTEM.T1' non valide. Echec de la revalidation
reqTrig1111= -1/b

1)requete de suppression
  String ss1  ="delete from ss where s1= 12";
            int reqTrig1=c.update(ss1);           
            System.out.println("reqTrig1111=  "+reqTrig1);

2)Trigger T1
 
   String chTrigger  ="create or replace trigger T1 ";
chTrigger= chTrigger+"BEFORE delete on ss FOR EACH ROW begin ";
chTrigger=chTrigger+"insert into ss3 values(seq_t.nextval,:old.s1,:old.s2)";
chTrigger=chTrigger+"\n"+"end;"+"\n"+"/";

int reqTrig= c.update(chTrigger) ;           
System.out.println("reqTrig =  "+reqTrig);

3)fonction update
 
public int update(String sql)
    {
        int i =-1;
        try
        {
             stm = cnx.createStatement();
             i =  stm.executeUpdate(sql);
        }catch(Exception e)
        {
            System.out.println("Echec de l'execution:"+e.getMessage());
        }
return i ;
}

4)description des tables

SQL> desc ss;
Nom NULL ? Type
-------------------- ------
S1 NUMBER(4)
S2 NUMBER(4)
SQL> desc ss3;
Nom NULL ? Type
------------ -------- ------
NUM NUMBER(4)
S1 NUMBER(4)
S2 NUMBER(4)
A voir également:

3 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 367
26 oct. 2011 à 07:47
Bonjour,

Je ne comprend pas ce que tu fais. Une fois que le trigger est créé sous oracle, tu n'as pas besoin de le créer en java ???
0
cs_sana83 Messages postés 29 Date d'inscription samedi 17 février 2007 Statut Membre Dernière intervention 9 novembre 2011
26 oct. 2011 à 15:15
oui bien sure t'a raison, mais je l'ai testé sous oracle pour vérifier si l'erreur dépendant du syntaxe du trigger ou non,
déjà j'ai supprimé ce trigger aprés le test
0
cs_sana83 Messages postés 29 Date d'inscription samedi 17 février 2007 Statut Membre Dernière intervention 9 novembre 2011
28 oct. 2011 à 10:33
çava j'ai trouvé l'erreur, il faut enlever le "/" à la fin du trigger
0