Создание ассоциативного массива на уровне пакета в java

Можно ли создать Java-представление ассоциативного массива Oracle на уровне пакета. Например, учитывая следующее:

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, ссылающегося на ассоциативный массив на уровне пакета? Такое вообще существует?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
4
0
2 902
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

См. http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:3696816290928 и особенно http://download.oracle.com/docs/cd/B10501_01/java.920/a96654/oci_func.htm#1017512.

Вторая ссылка была правильной, спасибо. Подводя итог - не используйте ArrayDescriptor при обращении к ассоциативным массивам на уровне пакета. Приведите вызываемый оператор к OracleCallableStatement и используйте setPlsqlIndexTable. Хотя не поддерживает записи ...

Andy 20.01.2009 14:00

@Andy большое спасибо за ваш комментарий. Это помогло мне решить ту же проблему, что и у вас, даже если гниение ссылок влияет на вторую ссылку ответа.

Xavi López 09.07.2012 19:21

Вы также можете использовать OracleConnection.createOracleArray ()

Обратите внимание, что arrayTypeName должен быть типа table of.

Также вам может пригодиться мой мой ответ на getArray () и writeArray ().

Другие вопросы по теме