У нас есть тип Oracle, который объявлен так:
СОЗДАТЬ ИЛИ ЗАМЕНИТЬ ТИП its_accountarray;
Нет базового типа. Этот тип затем используется в процедурах и пакетах (и в хранимых процедурах Java как дескриптор массива). В процедуре / пакете для добавления в массив используется функция extend .
<declare section>
v_account latax.ITS_ACCOUNTARRAY := new ITS_accountArray();
...
BEGIN
...
...
v_account.extend(1);
и в Java он используется как:
oracle.sql.ARRAY ls_accountARRAY, ls_periodARRAY;
oracle.sql.ArrayDescriptor ad = ArrayDescriptor.createDescriptor(**"ITS_ACCOUNTARRAY"**, oconn);
ls_accountARRAY = new ARRAY(ad, oconn, arg_accounts);
ocs.setARRAY(2, ls_accountARRAY);
Мне любопытно, как это работает. Несмотря на то, что имя содержит Array, оно не определено как тип массива или таблицы, как я обычно вижу. Это работает, но это законное использование, или я должен объявить тип, чтобы иметь некоторый тип массива явно?
Спасибо
Sam