Bonjour,
J'utilise iBatis depuis peu, et je me trouve devant un probleme que je n'arrive pas à résoudre, j'espere que certain d'entre vous pourrons m'aider.

Voici mon problème :
-J'ai un procédure stockée qui a comme arguments 2 Varchar2, le second prenant une valeur par defaut.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
CREATE OR REPLACE PACKAGE PKG_TEST IS 
PROCEDURE P_TEST_PARAM_DEFAULT (PI_FIRST IN OUT varchar2, 
PI_SECOND IN varchar2 default 'DeFaUlT');
END PKG_TEST;
CREATE OR REPLACE PACKAGE BODY PKG_TEST IS 
PROCEDURE P_TEST_PARAM_DEFAULT (PI_FIRST IN OUT varchar2, PI_SECOND IN varchar2 default 'DeFaUlT')
IS
Begin
PI_FIRST:=PI_FIRST||PI_SECOND;
End P_TEST_PARAM_DEFAULT;
END PKG_TEST;

Je souhaiterais pouvoir appeller cette procédure stockée de maniere simple, que je passe 1 ou 2 parametre.

Pour cela j'aimerai écrire dans la SQL map quelque chose chose comme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
	<parameterMap class="com.test.pkgtest.PTestParamDefault" id="PTestParamDefaultMap">
		<parameter property="piFirst"		mode="INOUT"	jdbcType="VARCHAR"		javaType="java.lang.String"/>
	<parameter property="piSecond"		mode="IN"	jdbcType="VARCHAR"		javaType="java.lang.String"/>
	</parameterMap>
 
	<procedure id="PTestParamDefault" parameterMap="PTestParamDefaultMap">  
		<isPropertyAvailable property="piSecond">
		call PKG_TEST.P_TEST_PARAM_DEFAULT(?,?)
		</isPropertyAvailable>
		call PKG_TEST.P_TEST_PARAM_DEFAULT(?)
	</procedure>
Mais ça ne fonctionne évident pas, ce serait trop facile !!


Mon but serait qu'à partir du même appel depuis ma couche DAO (sqlMapClient.queryForObject(PkgTestService.P_TEST_PARAM_DEFAULT, params);), iBatis, dynamiquement, fasse le bon appel pour la proc Stock.

Si quelqu'un à déjà eu affaire à un problème de ce type ou à une idée, je suis preneur !

Cordialement