Bonjour à tous
mon probleme est comme suite :
j'ai une fonction Java qui retourne un integer aprés l'appel d'une fonction Oracle qui a comme type de retour un varchar2 decrivant le deroulement de la fonction et 2 parametre un d'entrée et l'autre de sortie!!!
voici ma fonction Oracle :
une methode java utilise le parametre de sortie p_type (il y a une seule occurence )
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 function ps_s_typeacte(p_id_acte in integer ,p_type out integer) return varchar2 is result varchar2(10) := '0'; v_sqlcode integer; v_sqlmess varchar2(500); begin select DISTiNCT id_type_acte_gestion into p_type from t_workflow_statut where id_workflow_statut like(select max(id_workflow_statut) from t_workflow_statut_suivi where id_acte=p_id_acte); dbms_output.put_line(p_type); v_sqlcode := SQLCODE; result := v_sqlcode; return(result); exception when others then v_sqlcode := SQLCODE; v_sqlmess := SQLERRM; dbms_output.put_line('Error ' || to_char(v_sqlcode) || ' Message ' || v_sqlmess); result := v_sqlcode; raise_application_error(-20999, v_sqlcode || ',' || v_sqlmess); return(result); end ps_s_typeacte;
et le retourne en Integer
voici ma methode Java :
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 public Integer getTypeActe(Integer _idActe) throws TechnicalException, FunctionalException { Integer id; String result=""; IProcCaller caller = ProcCallerHelper.getProcCaller(); caller.reset(); caller.setFuncName(FUNC_GET_TYPE_ACTE); caller.addParamOut(Types.VARCHAR); caller.addParam(_idActe); caller.addParamOut(Types.INTEGER); try { System.err.println("dans la ps"); //Exécution de la requette ResultSet rs = caller.executeQuery(); System.err.println("apré la ps"); if (rs != null) { while (rs.next()) { id=rs.getInt(3); } } result = caller.getString(1); //Erreurs fonctionnelles if (result != null) { if (result.equals("0001")) { throw new FunctionalException(CLASS_NAME, ResourceHelper.getMessage("error.oracle.0001")); } } /* int id2 = caller.getInt(3); id = new Integer(id2);*/ id=new Integer(10); } catch (Exception e) { logger.error(e.getMessage(), e); if (e instanceof FunctionalException) { throw new FunctionalException(CLASS_NAME, e.getMessage()); } else { throw new TechnicalException(CLASS_NAME, e.getMessage()); } } return id; }
[/code]
ça donne une erreur comme quoi le nombre iu le type des parametres n'est pas valide .
j'ai une autre question
Comment convertir un entier en un Integer parque là ça donne une erreur :
et puis est ce que vous avez des remarques sur les indexe des colonne à getter dans la methode getInt ou getString ????
Code : Sélectionner tout - Visualiser dans une fenêtre à part id=rs.getInt(3);
Merci bq pour votre aide
Partager