リストをパラメーターとして受け取るカーソルを実行する必要があります。私はこれを試しました:
declare
type array_t is table of varchar(50); -- //also tried varray(10) instead of table
cursor c_cursor (p_list array_t) is
select
field_1
from
table_1
where
field_2 in p_list;
a_list array_t;
begin
a_list := array_t('aaa',
'bbb',
'cccc',
'ddd');
for v_cursor in c_cursor(a_list) loop
dbms_output.put_line(v_cursor.field_1);
end loop;
end;
次のエラーが表示されます
ORA-06550: line 11, column 21:
PLS-00642: local collection types not allowed in SQL statements
メソッドの使用について読みましたCREATE OR REPLACE
が、この場合は使用できませんCREATE OR REPLACE
(実際にはデータベースは読み取り専用です)。
可能な解決策はありますか?