Some initial observations...

1. VARCHAR2 is not a valid JDBC type - it is Oracle specific
2. You have three INOUT parameters all tied to the same property (dummy) in
your parameter object - that doesn't seem right to me.

Jeff Butler



On 3/26/07, disalle <[EMAIL PROTECTED]> wrote:

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


Reply via email to