oracle SQL state [99999]; error code [17026]; 数字溢出

org.springframework.jdbc.UncategorizedSQLException: CallableStatementCallback; uncategorized SQLException for SQL [{call updateUser(?, ?, ?, ?, ?, ?)}]; SQL state [99999]; error code [17026]; 数字溢出;

产生背景:

oracle数据库从11g升级到12c

调用存储过程的代码是用的spring的StoredProcedure

程序中有设置存储过程参数类型

new SqlOutParameter("userId",Types.INTEGER)

create or replace procedure updateUser(userId in int ....) as

...

在执行的时候,数据库驱动将传的参数类型和存数过程参数进行转换,报这个错。

原因:我用的旧版本spring的StoredProcedure可能是有个bug

他将你传的参数类型给变了,最后不是integer转int,是long转int,这样12c的驱动在转的时候就会报错。

解决方法:

方法一、把Types.INTEGER换成Types.NUMERIC

这样可能12c上解决了,不知道兼不兼容低版本了,没试过。

方法二、换调存数过程的写法

jt.execute(new ConnectionCallback(){

public Object doInConnection(Connection connection) throws SQLException, DataAccessException {

CallableStatement st = null;

st=connection.prepareCall("{call updateUser(?,?,?,?,?)}");

st.registerOutParameter(1,Types.INTEGER);

st.registerOutParameter(4,Types.INTEGER);

st.registerOutParameter(5,Types.VARCHAR);

st.setInt(1,0);

st.setInt(2,insID);

st.setInt(3,1);

st.setInt(4,1);

st.setString(5,"OK");

st.execute();

CodeName c = new CodeName();

c.setCode("" + st.getInt(4));

c.setName(st.getString(5));

return c;

}

});

时间: 2024-10-10 21:54:41

oracle SQL state [99999]; error code [17026]; 数字溢出的相关文章

SQL state [72000]; error code [1013]; ORA-03111: 通信通道收到中断; java.sql.SQLException: ORA-01745: 无效的主机/绑定变量名;java.sql.SQLException: ORA-01013: 用户请求取消当前的操作

1.oracle批量插入 2.java.sql.SQLException: ORA-01745: 无效的主机/绑定变量名(数据太多的时候出现解决方法限制条数插入) /** * 按指定大小,分隔集合,将集合按规定个数分为n个部分 * @param <T> * * @param list * @param len * @return */ public static <T> List<List<T>> splitList(List<T> list,

SQL state [HY000]; error code [3]; 问题分析

工作流表单采用了freemarker技术将表单与后台数据库绑定,每次修改表单定义将会对该表单对应的数据库执行alter操作.今天测试系统在执行保存表单定义操作时,报如下错误: HTTP Status 500 - StatementCallback; uncategorized SQLException for SQL [ALTER TABLE T_DYMC_20140522141004 CHANGE f_xqdbm f_xqdbm VARCHAR(50) COMMENT '需求单编码';]; S

Translating SQLException with SQL state &#39;42000&#39;, error code &#39;1064&#39;错误

PostgreSQL, Sybase]2018-04-12 14:18:55 [org.springframework.jdbc.support.SQLErrorCodesFactory]-[DEBUG] Looking up default SQLErrorCodes for DataSource [{ CreateTime:"2018-04-12 14:18:43", ActiveCount:1, PoolingCount:0, CreateCount:1, DestroyCoun

HTTP Status 500 - JDBC exception on Hibernate data access: SQLException for SQL [n/a]; SQL state [HY000]; error code [1364]; could not execute statement; nested exception is org.hibernate.exception.Ge

HTTP Status 500 - JDBC exception on Hibernate data access: SQLException for SQL [n/a]; SQL state [HY000]; error code [1364]; could not execute statement; nested exception is org.hibernate.exception.GenericJDBCException: could not execute statement 翻译

SQL SERVER2014 安装 Error code 0x858C001B.

原因是语言版本不一致,SQL SERVER是中文简体版,操作系统是英文版,在操作系统.控制面板,区域语言设置为中文就Ok啦. TITLE: SQL Server Setup failure.------------------------------ssSQL Server Setup has encountered the following error: The SQL Server license agreement cannot be located for the selected e

Mysql导入Sql文件时报Error Code: 2013 - Lost connection to MySQL server during query

MySql 有时我们导入sql文件,文件过大,导致Error Code: 2013 - Lost connection to MySQL server during query这种错误 执行以下: [sql] view plain copy print? SHOW GLOBAL VARIABLES LIKE '%timeout'; SET GLOBAL net_write_timeout=28800; SET GLOBAL net_read_timeout=100; SET GLOBAL con

Oracle sql判断一个字段是否全数字 或含有中文

[sql] view plain copy update (select length(t.name), t.* -- name,length(name) from g_enterprise_info t where nvl2(translate(name, '\1234567890 ', '\'), 'is characters ', 'is number ') = 'is number ' and asciistr(gszcdjh) like '%\%') set name = gszcdj

Oracle java.sql.SQLException: 数字溢出

六月 30, 2016 5:47:47 下午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions信息: Loading XML bean definitions from class path resource [org/springframework/jdbc/support/sql-error-codes.xml]六月 30, 2016 5:47:47 下午 org.springf

SQL报错error:索引中丢失IN或OUT参数

简单记录下: 今天mybatis中遇到一个错误: org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [INSERT INTO law_enforce_user(user_code,name,sex,birthday) VALUES(?,?,?,?)]; SQL state [99999]; error code [170