- 异常信息:
- Exception in thread "main" com.ibatis.common.jdbc.exception.NestedSQLException:
- --- The error occurred in com/mydomain/data/Account.xml.
- --- The error occurred while executing query procedure.
- --- Check the {call scott.queryaccount(?,?)}.
- --- Check the output parameters (register output parameters failed).
- --- Cause: java.sql.SQLException: 无效的列类型
- at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:185)
- at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForObject(GeneralStatement.java:104)
- at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:566)
- at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:541)
- at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForObject(SqlMapSessionImpl.java:106)
- at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForObject(SqlMapClientImpl.java:83)
- at com.mydomain.data.SimpleExample.queryCount(SimpleExample.java:52)
- at com.mydomain.data.SimpleExample.main(SimpleExample.java:44)
- Caused by: java.sql.SQLException: 无效的列类型
- at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
- at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
- at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:269)
- at oracle.jdbc.driver.OracleStatement.get_internal_type(OracleStatement.java:6164)
- at oracle.jdbc.driver.OracleCallableStatement.registerOutParameterBytes(OracleCallableStatement.java:244)
- at oracle.jdbc.driver.OracleCallableStatement.registerOutParameter(OracleCallableStatement.java:393)
- at oracle.jdbc.driver.OracleCallableStatement.registerOutParameter(OracleCallableStatement.java:462)
- at com.ibatis.sqlmap.engine.execution.SqlExecutor.registerOutputParameters(SqlExecutor.java:428)
- at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQueryProcedure(SqlExecutor.java:275)
- at com.ibatis.sqlmap.engine.mapping.statement.ProcedureStatement.sqlExecuteQuery(ProcedureStatement.java:34)
- at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:173)
- ... 7 more
查看java.sql.Types类中有关JDBC类型变量类型,并没有发“NUMBER”这一静态字段,而只有“NUMERIC”字段。(因此 jdbcType 的值不是数据库ORACLE的参数类型,而是其对应的JDBC变量类型)
java.sql.Types类中还有一个DECIMAL静态常量,与javaType定义的java.math.BigDecimal类型一致
转载于:https://blog.51cto.com/hongxuwei/1035915