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 :
Mais ça ne fonctionne évident pas, ce serait trop facile !!
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>
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
Partager