【问题标题】:Creating package-level associative array in java在java中创建包级关联数组
【发布时间】:2010-10-02 06:11:06
【问题描述】:

是否可以创建包级 oracle 关联数组的 java 表示。例如,给定以下内容:

CREATE OR REPLACE PACKAGE MyPackage AS
    TYPE t_numbers IS TABLE OF NUMBER INDEX BY PLS_INTEGER;

我发现我无法编写以下 java:

ArrayDescriptor descriptor =
    ArrayDescriptor.createDescriptor("MyPackage.t_numbers", connection);

(抛出 SQLException “无效的名称模式”)。

ArrayDescriptor 引用包级关联数组的正确语法是什么?这样的事情还存在吗?

【问题讨论】:

    标签: java oracle jdbc associative-array


    【解决方案1】:

    【讨论】:

    • 第二个链接出现了,谢谢。总结一下——在引用包级关联数组时不要使用 ArrayDescriptor。将可调用语句转换为 OracleCallableStatement 并使用 setPlsqlIndexTable。但不支持记录...
    • @Andy 非常感谢您的评论。它帮助我解决了您遇到的相同问题,即使链接失效会影响答案的第二个链接。
    【解决方案2】:

    你也可以使用OracleConnection.createOracleArray()

    注意arrayTypeName 应该是table of 类型。

    另外,您可能会发现我的my answer on getArray() and writeArray() 很有用。

    【讨论】:

      猜你喜欢
      • 2017-06-13
      • 2018-06-02
      • 2011-03-17
      • 2014-12-17
      • 1970-01-01
      • 2016-07-05
      • 2012-04-30
      • 2012-07-31
      • 2012-04-05
      相关资源
      最近更新 更多