Я хочу получить доступ к типу данных, определенному в пакете из Java при выполнении функции. Пожалуйста, помогите мне.
Пакет и функция:
create or replace package types as
TYPE name_array IS VARRAY(100000) OF VARCHAR2(200);
end types;
create or replace function test_pack1 return types.name_array as
names types.name_array := types.name_array();
begin
for emp in (Select state from test where test_ID BETWEEN 1 AND 120000) loop
names.extend;
names(names.count) := emp.state;
end loop;
return names;
end test_pack1;
код Java
cstmt = (OracleCallableStatement) con.prepareCall("begin ? :=test_pack1; end;");
cstmt.registerOutParameter(1, OracleTypes.ARRAY,"NAME_ARRAY");
cstmt.execute();
Выше я получаю сообщение об ошибке во второй строке.Сообщение об ошибке ниже: java.sql.SQLException: недопустимый шаблон имени: xyz.NAME_ARRAY
Функция успешно выполняется в Oracle. Но когда мы пытаемся выполнить из java ее исключение выше исключения.