cs_sana83
Messages postés29Date d'inscriptionsamedi 17 février 2007StatutMembreDernière intervention 9 novembre 2011
-
25 oct. 2011 à 22:02
cs_sana83
Messages postés29Date d'inscriptionsamedi 17 février 2007StatutMembreDerniè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)
cs_sana83
Messages postés29Date d'inscriptionsamedi 17 février 2007StatutMembreDerniè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