【问题标题】:Accessing the Custom Object Return type from ojdbc6 JDBC Thin Drivers从 ojdbc6 JDBC 瘦驱动程序访问自定义对象返回类型
【发布时间】:2011-02-27 06:58:47
【问题描述】:

我正在编写一些 JDBC 代码,它调用具有自定义对象返回类型的 Oracle 11g PL/SQL 过程。我可以获得调用该过程的代码,但是如何访问返回的自定义对象以获取它包含的值?下面是我调用该过程的代码示例:

PLSQL 代码:

Procedure GetDataSummary (p_my_key    IN    KEYS.MY_KEY%TYPE,
                          p_recordset OUT   data_summary_tab,
                          p_status    OUT   VARCHAR2);

Java 代码:

String query = "begin manageroleviewdata.getdatasummary(?, ?, ?); end;");
CallableStatement stmt = conn.prepareCall(query);

// Single IN parameter
stmt.setInt(1, 83);

// Two OUT parameters, one a Custom Object, the other a VARCHAR
stmt.registerOutParameter(2, OracleTypes.ARRAY, "DATA_SUMMARY_TAB");
stmt.registerOutParameter(3, OracleTypes.VARCHAR);

stmt.execute(stmt);

我如何从这里得到结果?

【问题讨论】:

    标签: java jdbc plsql rdbms oracle11g


    【解决方案1】:

    我们已经破解了:

    oracle.sql.ARRAY result2 = (oracle.sql.ARRAY) stmt.getObject(2);
    ResultSet rs = result2.getResultSet();
    oracle.sql.STRUCT elements = (oracle.sql.STRUCT) rs.getObject(2);
    String result = null;
    if (elements != null) {
        Object[] objs = elements.getAttributes();
        result = objs[2];
    }
    System.out.println("Result: " + result);
    

    在我们的例子中,这将打印自定义对象类型中的第三个元素。

    【讨论】:

      猜你喜欢
      • 2013-04-08
      • 2011-02-09
      • 2018-08-26
      • 2010-11-07
      • 2014-09-11
      • 1970-01-01
      • 1970-01-01
      • 2017-03-14
      • 1970-01-01
      相关资源
      最近更新 更多