bnojour,
je veux savoir comment faire une méthode java appéle dans le code d'un triger dans oracle ??
j'ai essayé de le faire mais ça n'a pas marché.
SVp est ce que quelqu'un a une idéé???
Version imprimable
bnojour,
je veux savoir comment faire une méthode java appéle dans le code d'un triger dans oracle ??
j'ai essayé de le faire mais ça n'a pas marché.
SVp est ce que quelqu'un a une idéé???
bonjour
suis les etapes:
1*création d'un programme java comme suite:
2*création d'une fonction attachée au programme javaCode:
1
2
3
4
5
6
7
8
9
10 create or replace and compile java source named salutation AS public class salut { public static String salut_moi() { return "Hello Hello Hello Hello Hello me!"; } }
Code:
1
2 CREATE OR REPLACE FUNCTION salut_moi_fonction RETURN VARCHAR2 IS LANGUAGE JAVA NAME 'salut.salut_moi() return String';
3*tu peux maintenant l'exploiter soit dans une procédure/fonction soit à l'aide une select..
bon courageCode:select salut_moi_fonction FROM DUAL;
bnsoir!
Voila le code que je veux faire
1-le code java : la methode
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; public class TriggerJava { public static void testSalaire (int empID, float nvData) throws SQLException { Connection conn = DriverManager.getConnection("jdbc:default:connection:"); String sql = "INSERT INTO controle VALUES (?, ?)"; try { PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setInt(1, empID); pstmt.setFloat(2, nvData); pstmt.executeUpdate(); pstmt.close(); } catch (SQLException e) {System.err.println(e.getMessage());} } }
2-la publication de la méthode:
Code:
1
2
3
4 CREATE OR REPLACE PROCEDURE test_salaire ( empid NUMBER, nvsalaire NUMBER) AS LANGUAGE JAVA NAME triggerJava.testSalaire(int,float);
3-on crée la table controle
4-Enfin, il faut définir le déclencheur, que nous appelons sal_trig. C’est un déclencheur deCode:
1
2
3 CREATE TABLE controle ( empid NUMBER, salaire NUMBER);
mise à jour qui est évalué à chaque mise à jour de la colonne sal.
5-Vérifions maintenant que le trigger trigger_salaire et la procédure stockée test_salaireCode:
1
2
3
4
5 CREATE OR REPLACE TRIGGER trigger_salaire AFTER UPDATE OF sal ON emp FOR EACH ROW WHEN (new.sal > 10000) CALL test_salaire(:new.empno, :new.sal)
remplissent leur rôle. Le script suivant augmente de 20 %
le salaire de chaque employé. La table Controle contient alors tous les employés dont le
salaire est supérieur à 10 000 après augmentation.
Mais lorsque je tape cette commande voila le message d'erreur :Code:UPDATE emp SET sal = sal*1.2;
SVP quelqu'un a une idéeCitation:
java not installed
Error during execution of trigger
et Merci
voici les liens,ca va t'aider
http://janela.lirmm.fr/~lin/sites/de..._M1_1011_1.pdf
http://docs.oracle.com/cd/B19306_01/...187/chfive.htm
tu trouve ci-joint la solution.
j'ai pas pu la publier directement.
j'attend ton feedback.