Bonjour,
Je souhaite exécuter une procédure stockée Oracle avec iBatis. J'ai bien trouvé la doc correspondante et des exemples sur le Web, mais impossible de le faire fonctionner.
Avec la variante 1 ci-dessous, j'ai le message d'erreur :
Avec la variante 2 , j'ai le message d'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part System.IndexOutOfRangeException: Un OracleParameter avec ParameterName '' n'est pas contenu dans ce OracleParameterCollection.
J'ai fait comme sur des exemples qui fonctionnent, mais impossible de faire marcher chez moi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part System.IndexOutOfRangeException: The parameter 'pe_orjeton' does not exist in the stored procedure 'ProcChargerDroitsUtilisateur'. Check your parameterMap.
Une idée SVP ?
Merci.
Signature de la procédure stockée (qui se trouve dans un package) :
Code C# :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 PROCEDURE PROC_CHARGE_DROITS( pe_orjeton IN vwjeton.orjeton%TYPE, -- number(16) pe_cdtuserw_sel IN vwuser.cdtuserw%TYPE, -- varchar2(4) pe_cduserw_sel IN vwuser.cduserw%TYPE, -- varchar2(12) pe_cdtuserw IN vwuser.cdtuserw%TYPE, -- varchar2(4) pe_cduserw IN vwuser.cduserw%TYPE, -- varchar2(12) ps_code_erreur OUT VARCHAR2, ps_libelle_erreur OUT VARCHAR2 );
Fichier de mapping :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Hashtable param = new Hashtable(); param.Add("pe_orjeton", p_IdSession); param.Add("pe_cdtuserw_sel", p_TypeUser); param.Add("pe_cduserw_sel", p_CodeUser); param.Add("pe_cdtuserw", p_TypeUserConnecte); param.Add("pe_cduserw", p_CodeUserConnecte); param.Add("ps_code_erreur", null); param.Add("ps_libelle_erreur", null); Mapper.Instance().QueryForObject("ProcChargerDroitsUtilisateur", param);
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 <statements> <procedure id="ProcChargerDroitsUtilisateur" parameterMap="ProcChargerDroitsUtilisateur-params"> pack_charge_droits.proc_charge_droits </procedure> </statements> <parameterMaps> <parameterMap id="ProcChargerDroitsUtilisateur-params" class="HashTable"> ===== Variante 1 ===== <parameter property="pe_orjeton" direction="Input" dbType="Int64" /> <parameter property="pe_cdtuserw_sel" direction="Input" dbType="VarChar2" /> <parameter property="pe_cduserw_sel" direction="Input" dbType="VarChar2" /> <parameter property="pe_cdtuserw" direction="Input" dbType="VarChar2" /> <parameter property="pe_cduserw" direction="Input" dbType="VarChar2" /> <parameter property="ps_code_erreur" direction="Output" dbType="VarChar2" /> <parameter property="ps_libelle_erreur" direction="Output" dbType="VarChar2" /> ===== Variante 2 ===== <parameter property="pe_orjeton" column="pe_orjeton" /> <parameter property="pe_cdtuserw_sel" column="pe_cdtuserw_sel" /> <parameter property="pe_cduserw_sel" column="pe_cduserw_sel" /> <parameter property="pe_cdtuserw" column="pe_cdtuserw" /> <parameter property="pe_cduserw" column="pe_cduserw" /> <parameter property="ps_code_erreur" direction="Output" /> <parameter property="ps_libelle_erreur" direction="Output" /> </parameterMap> </parameterMaps>
Partager