Hi all,
I am calling an Oracle procedure with Ibatis 2.3.0 but I have the
following exception:
com.ibatis.common.jdbc.exception.NestedSQLException:
--- The error occurred in impl/ibatis/xml/circhi.xml.
--- The error occurred while executing update procedure.
--- Check the {call
anagrafiche.ins_circhi(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,? ) }.
--- Check the output parameters (register output parameters failed).
--- Cause: java.sql.SQLException: Tipo di colonna non valido
at
com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeUpdat
e(GeneralStatement.java:91)
at
com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.insert(SqlMapExecut
orDelegate.java:447)
at
com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.insert(SqlMapSessionImpl
.java:82)
at
com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.insert(SqlMapClientImpl.j
ava:59)
at xxxxx.IBatisCirchiDAO.createCirco(IBatisCirchiDAO.java:19)
The problem is is the crcId parameter.
I have created a testcase and i have debugged it and the exception is
throwed in "cs.registerOutParameter(i + 1, mapping.getJdbcType());" in
the SqlExecutor class.
The procedure is
<procedure id="createCirco" parameterClass="test.CircoTO">
{call anagrafiche.ins_circhi(
#crcId,javaType=int,jdbcType=INTEGER,mode=INOUT#,
#codice,javaType=string,jdbcType=VARCHAR2,mode=IN#,
#denominazione,javaType=string,jdbcType=VARCHAR2,mode=IN#,
#indirizzo,javaType=string,jdbcType=VARCHAR2,mode=IN#,
#localita,javaType=string,jdbcType=VARCHAR2,mode=IN#,
#cap,javaType=string,jdbcType=CHAR,mode=IN#,
#comIstat,javaType=string,jdbcType=CHAR,mode=IN#,
#proSigla,javaType=string,jdbcType=CHAR,mode=IN#,
#tscCodice,javaType=string,jdbcType=VARCHAR2,mode=IN#,
#opcrcIdFiscaleProp,javaType=string,jdbcType=VARCHAR2,mode=IN#,
#opcrcIdFiscaleOper,javaType=string,jdbcType=VARCHAR2,mode=IN#,
#dataRilascio,javaType=date,jdbcType=TIMESTAMP,mode=IN#,
#aslCodice,javaType=string,jdbcType=CHAR,mode=IN#,
#stCodice,javaType=string,jdbcType=CHAR,mode=IN#,
#utenteCodice,javaType=string,jdbcType=VARCHAR2,mode=IN#,
#dummy,javaType=string,jdbcType=VARCHAR2,mode=INOUT#,
#dummy,javaType=string,jdbcType=VARCHAR2,mode=INOUT#,
#dummy,javaType=string,jdbcType=VARCHAR2,mode=INOUT# )
}
</procedure>
Thanks in advance
/Amleto