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...
Si c'est une procédure toute faite, il est plus propre de la mettre dans un .sql.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager