加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Oracle报错:类型长度大于最大值解决办法

发布时间:2020-12-12 15:40:04 所属栏目:百科 来源:网络整理
导读:java调用以下存储过程时报错: --1.创建一个包,在该包中定义了一个游标类型yh_cursor1 create or replace package testpackage as type test_cursor is ref cursor ; end testpackage; --2.创建存储过程 create or replace procedure sp_13(spNo in number

java调用以下存储过程时报错:

--1.创建一个包,在该包中定义了一个游标类型yh_cursor1
create or replace package testpackage as type test_cursor is ref cursor;
end testpackage;

--2.创建存储过程
create or replace procedure sp_13(spNo in number,p_cursor out testpackage.test_cursor) is begin open p_cursor for select * from emp where deptno=spNo;
end sp_13;

console打印的异常信息:

java.sql.SQLException: 类型长度大于最大值
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:162)
    at oracle.jdbc.driver.DatabaseError.check_error(DatabaseError.java:885)
    at oracle.jdbc.driver.T4CMAREngine.buffer2Value(T4CMAREngine.java:2231)
    at oracle.jdbc.driver.T4CMAREngine.unmarshalUB2(T4CMAREngine.java:1048)
    at oracle.jdbc.driver.T4CTTIdcb.receiveCommon(T4CTTIdcb.java:112)
    at oracle.jdbc.driver.T4CTTIdcb.receiveFromRefCursor(T4CTTIdcb.java:104)
    at oracle.jdbc.driver.T4CResultSetAccessor.unmarshalOneRow(T4CResultSetAccessor.java:165)
    at oracle.jdbc.driver.T4CTTIrxd.unmarshal(T4CTTIrxd.java:785)
    at oracle.jdbc.driver.T4CTTIrxd.unmarshal(T4CTTIrxd.java:702)
    at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:527)
    at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:180)
    at oracle.jdbc.driver.T4CCallableStatement.execute_for_rows(T4CCallableStatement.java:783)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1027)
    at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:2885)
    at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:2976)
    at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4103)
    at com.huihui.test3.OracleTest.main(OracleTest.java:29)
java.sql.SQLException: 违反协议
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:162)
    at oracle.jdbc.driver.DatabaseError.check_error(DatabaseError.java:885)
    at oracle.jdbc.driver.T4C7Ocommoncall.receive(T4C7Ocommoncall.java:133)
    at oracle.jdbc.driver.T4CConnection.logoff(T4CConnection.java:385)
    at oracle.jdbc.driver.PhysicalConnection.close(PhysicalConnection.java:1036)
    at com.huihui.test3.OracleTest.main(OracleTest.java:48)

解决办法:

用oracle自带ojdbc14.jar (1.5m)替换weblogic81/server/lib下的ojdbc14.jar(1.3m)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读