获取异常 java.sql.SQLException: ORA-03115: 不支持的网络数据类型或表示

Posted

技术标签:

【中文标题】获取异常 java.sql.SQLException: ORA-03115: 不支持的网络数据类型或表示【英文标题】:Getting Exception java.sql.SQLException: ORA-03115: unsupported network datatype or representation 【发布时间】:2018-10-28 10:32:18 【问题描述】:

Java 程序:

CREATE OR REPLACE PACKAGE pkg_name is

    TYPE REF_CURSOR IS REF CURSOR; 

    PROCEDURE p_fetch_unprocessed_repair (
                IN_OUT_BULK_ID      IN OUT  NUMBER,
                IN_PUBLISH_STATUS   IN  CHAR,
                out_from_date       OUT VARCHAR2,
                out_to_date         OUT VARCHAR2,
                out_repair_info     OUT REF_CURSOR,
                out_error_cd        OUT VARCHAR2
        ) ;

    END;

调用存储过程的Java代码块。

try 
    CallableStatement callStatement= conn.prepareCall("call PKG_NAME.p_fetch_unprocessed_repair(?,?,?,?,?,?)");
    conn.setAutoCommit(false);
    callStatement.setFetchDirection(ResultSet.FETCH_FORWARD);
    callStatement.setFetchSize(props.getDbBatchSize());
    callStatement.registerOutParameter("IN_OUT_BULK_ID", Types.NUMERIC);
    if(null != bulkID && StringUtils.isNotBlank(bulkStatus))
        callStatement.setInt("IN_OUT_BULK_ID", bulkID);
    
    callStatement.setString("IN_PUBLISH_STATUS", bulkStatus);
    callStatement.registerOutParameter("OUT_FROM_DATE", Types.VARCHAR);
    callStatement.registerOutParameter("OUT_TO_DATE", Types.VARCHAR);
    callStatement.registerOutParameter("OUT_REPAIR_INFO", Types.REF);
    callStatement.registerOutParameter("OUT_ERROR_CD", Types.VARCHAR);
    Boolean hadResults = callStatement.execute();
 catch(exception e ) 


【问题讨论】:

【参考方案1】:

换行试试

            callStatement.registerOutParameter("OUT_REPAIR_INFO", Types.REF);

            callStatement.registerOutParameter("OUT_REPAIR_INFO", oracle.jdbc.OracleTypes.CURSOR);

【讨论】:

它解决了我的问题,但我没有得到任何结果集 eventhogh 我硬编码的输出变量。请帮助我。 我不确定你的意思是“没有得到任何结果集”。你的意思是你的变量hadResults 最终是false?如果是这种情况,则忽略该值,而是尝试使用 ResultSet myResultSet = (ResultSet)callStatement.getObject("OUT_REPAIR_INFO"); 之类的行从可调用语句中读取结果集。

以上是关于获取异常 java.sql.SQLException: ORA-03115: 不支持的网络数据类型或表示的主要内容,如果未能解决你的问题,请参考以下文章

ORA-00904: "pass": 无效的标识符

异常:异常的分类;获取异常及处理;抛出异常

wps网络异常无法获取用户信息?

关于获取java异常的方法

Python中获取异常(Exception)信息

Inno Setup:如何获取引发异常的异常代码?