Bonjour,
Est il possible d'executer du PL/SQL dans du code java.
Exemple:
PreparedStatement pstmt = con.prepareStatement(PL/SQL);
Merci
Bonjour,
Est il possible d'executer du PL/SQL dans du code java.
Exemple:
PreparedStatement pstmt = con.prepareStatement(PL/SQL);
Merci
Si tu veux executer une procedure sql :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 //on prépare CallableStatement stUser = null; stUser = con.prepareCall("{call ajout_employe(?,?,?,?,?,?,?,?,?,?,?,?,?)}"); //on passe les paramètres a la procedure stockée stUser.setInt(1, this.code); stUser.setString(2, this.nom); stUser.setString(3, this.prenom); stUser.setString(4,this.date_naiss); stUser.setString(5, this.lieu_naiss); stUser.setString(6, this.adresse); stUser.setString(7,this.cp); stUser.setString(8, this.ville); stUser.setString(9, String.valueOf(this.num_tel)); stUser.setString(10,this.secteur); stUser.setString(11,this.fonction); stUser.setInt(12,id_grade); stUser.setString(13,this.tauxOccupation); //on execute la procedure stockée stUser.executeUpdate();
Bonjour,
Je me suis mal exprimé, dans mon projet on souhaite pas stocker le procedures dans la base Oracle, donc la seule possibilité est d'executer le code PL/SQL dans mes classe java par exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 stmt.execute(" BEGIN"+ "INSERT INTO clients (no_cli, nom_cli, ville_cli)"+ "VALUES (seq_noclient.NEXTVAL, p_nom, p_ville);"+ "COMMIT ;"+ "END;" );
Oui, j 'ai eu des erreurs de syntaxe au niveau du code PL/SQL
- les begin, commit et end ne sont pas nécessairesEnvoyé par tikiwine
- comme c'est un insert tu peux faire un executeUpdate au lieu de execute
- il n'y a pas d'espace entre ville_cli) et VALUES ça ne peut pas marcher
- c'est du SQL pur (pas vraiment PL/SQL), un PreparedStatement suffit
Le code PL/Sql que j'ai écrit c'etait juste pour l'exemple, le vrai code il y a pas mal d'nstruction PL voici une partie:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 v_clob_temp CLOB; v_end_offset INTEGER := 1; v_start_offset INTEGER := 1; v_occurence NUMBER := 1; v_replace_len NUMBER := length(p_replace); v_clob_temp_len NUMBER := 0; v_dest_clob_len NUMBER := 0; BEGIN IF dbms_lob.ISOPEN(p_dest_clob) = 0 THEN NULL; END IF; dbms_lob.createtemporary(v_clob_temp, TRUE, dbms_lob.session); LOOP v_end_offset := dbms_lob.instr(p_dest_clob, p_search, 1, v_occurence); IF v_end_offset = 0 THEN v_clob_temp_len := dbms_lob.getlength(v_clob_temp); v_dest_clob_len := dbms_lob.getlength(p_dest_clob) - v_start_offset + 1; IF v_dest_clob_len > 0 THEN dbms_lob.copy(v_clob_temp, p_dest_clob, v_dest_clob_len, v_clob_temp_len + 1, v_start_offset); END IF; EXIT; END IF; v_clob_temp_len := dbms_lob.getlength(v_clob_temp); IF (v_end_offset - v_start_offset) > 0 THEN dbms_lob.copy(v_clob_temp, p_dest_clob, (v_end_offset - v_start_offset), v_clob_temp_len + 1, v_start_offset); END IF;
ok ba effectivement comm l'a dit BiMouXeTTe c'est plus une question de PL/SQL![]()
eeee.... a quoi ca peut servir de mettre une procedure dans java?
Je comprend pas pourquoi tu la ferais pas sur oracle et tu l'appelerais sur java:
:
:
Dans ce cas il créerait une procédure dynamiquement alors?
Ah oué ok , j'avais pas pensé a ca...
Partager