ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jens Borrack" <borr...@tembit.de>
Subject "invalid row index" parameter registration Problem
Date Mon, 10 Mar 2008 16:28:47 GMT
Problem:
The "invalid row index" Problem occurs, when i try to execute a stored procedure on Oracle
10.2.0.1.0. This particular procedure has 60 in and 1 out parameters. The interesting point
is, that a similar procedure with only 13/1 in/out parameters works fine. So maybe there is
any limit for the parameters?
Plain JBDC calls worked well with the last Versions of our application, but after we planned
switching to iBatis we hit this barrier.


So far i tried:
-using different oracle drivers
-using different jdbc/java types as described at http://download.oracle.com/docs/cd/B10501_01/java.920/a96654/basic.htm#1001613
-calling the plsql script as function or as stored procedure -using different positions for
the affected parameter in my ParameterMap (which resulted in different outputs of the same
kind of error)

-----parameterMap
 <parameterMap id="insertFttAppMap" class="java.util.HashMap">
	 	<parameter property="v_id" jdbcType="INTEGER" mode="OUT"/>
  		<parameter property="con_id" jdbcType="INTEGER" mode="IN"/>
  		<parameter property="startpos" jdbcType="VARCHAR" mode="IN"/>
  		<parameter property="endpos" jdbcType="VARCHAR" mode="IN"/>
  		<parameter property="execdate" jdbcType="VARCHAR" mode="IN"/>
  		<parameter property="valuedate" jdbcType="VARCHAR" mode="IN"/>
  		<parameter property="creationdate" jdbcType="VARCHAR" mode="IN"/> ... (61 in total)
  		<parameter property="chargeaccnbr" jdbcType="VARCHAR" mode="IN"/>
  		<parameter property="payrunid" jdbcType="VARCHAR" mode="IN"/>
  		<parameter property="payrundt" jdbcType="VARCHAR" mode="IN"/> </parameterMap>



-----procedure
<procedure id="insertFttAppTransaction" parameterMap="insertFttAppMap">
  	{ call SPTRANSACTIONINSERT_PROC (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)}
</procedure>


-----Stack Trace
--- The error occurred in ibatis/SQLJobDAO_Extensions.xml.  
--- The error occurred while applying a parameter map.  
--- Check the SQLJobDAO_Extensions.insertFttAppMap.  
--- Check the parameter mapping for the 'payrunid' property.  
--- Cause: java.sql.SQLException: Ung├╝ltiger Spaltenindex -->(invalid row index)
	at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeUpdate(GeneralStatement.java:91)
	at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.update(SqlMapExecutorDelegate.java:505)
	at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.update(SqlMapSessionImpl.java:90)
	at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.update(SqlMapClientImpl.java:67)
	at com.tembit.tpf.dao.impl.SQLjobDAO_Extensions.insertFttAppTransaction(SQLjobDAO_Extensions.java:163)
	at com.tembit.ftt.converter.PfJob.getTransaction(PfJob.java:496)
	at com.tembit.ftt.converter.PfJob.getSlot(PfJob.java:406)
	at com.tembit.ftt.converter.PfJob.getElements(PfJob.java:324)
	at com.tembit.ftt.converter.PfJob.run(PfJob.java:279)
	at java.util.TimerThread.mainLoop(Timer.java:512)
	at java.util.TimerThread.run(Timer.java:462)
Caused by: java.sql.SQLException: Ung├╝ltiger Spaltenindex
	at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
	at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
	at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
	at oracle.jdbc.driver.OraclePreparedStatement.setStringInternal(OraclePreparedStatement.java:5306)
	at oracle.jdbc.driver.OracleCallableStatement.setString(OracleCallableStatement.java:4541)
	at com.ibatis.sqlmap.engine.type.StringTypeHandler.setParameter(StringTypeHandler.java:30)
	at com.ibatis.sqlmap.engine.type.UnknownTypeHandler.setParameter(UnknownTypeHandler.java:69)
	at com.ibatis.sqlmap.engine.mapping.parameter.BasicParameterMap.setParameter(BasicParameterMap.java:165)
	at com.ibatis.sqlmap.engine.mapping.parameter.BasicParameterMap.setParameters(BasicParameterMap.java:125)
	at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeUpdateProcedure(SqlExecutor.java:228)
	at com.ibatis.sqlmap.engine.mapping.statement.ProcedureStatement.sqlExecuteUpdate(ProcedureStatement.java:30)
	at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeUpdate(GeneralStatement.java:78)
	... 10 more

Since i lack any more ideas to solve the problem, i would be thankful for your support.
Jens Borrack


Mime
View raw message