JDBC:获取oracle包中定义的VARRAY类型

时间:2015-10-26 06:11:05

标签: java oracle jdbc varray

我正在尝试执行具有数组类型(VARRAY)输出参数的oracle过程。此数组类型在包中定义。

VARRAY定义:

create or replace
package PKG_TYPES_VARIABLES
as  
  TYPE RETURNARRAY IS VARRAY(100) OF VARCHAR2(2000);
end;

当我尝试使用JDBC执行存储过程时,我得到了以下的执行。

invalid name pattern: PKG_TYPES_VARIABLES.RETURNARRAY

Java代码:

oracleCallableStmt =
        (OracleCallableStatement) dbTransaction.createCallableStatement("begin pkg1.prc_MasterValidation(?); end;", 0);
    oracleCallableStmt.registerOutParameter(1, OracleTypes.ARRAY, "PKG_TYPES_VARIABLES.RETURNARRAY");
    oracleCallableStmt.executeUpdate();

我们不能注册包中定义的数组输出参数吗?当我在谷歌中搜索此错误时,每个人都说在包中定义类型时无法调用这些类型。但那些博客/论坛已经很老了。

即使在最新的jdbc和oracle 12c db中,如果在包中定义了类型,我们也无法调用它们吗?任何人都可以解释为什么会有这样的限制吗?

0 个答案:

没有答案