Je dois faire un curseur qui reçoit une liste en tant que paramètre. Je l'ai essayé ceci:Type de collection en tant que paramètre de curseur
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;
et je reçois l'erreur suivante
ORA-06550: line 11, column 21:
PLS-00642: local collection types not allowed in SQL statements
J'ai lu sur l'utilisation de la méthode CREATE OR REPLACE
mais je ne peux pas utiliser CREATE OR REPLACE
dans ce cas (en fait la base de données est en lecture seule).
Y a-t-il une solution possible?
S'il vous plaît ajouter la sortie attendue de la requête. – TechDo
Voici quelques exemple: http://stackoverflow.com/questions/4249010/in-pl-sql-take-a-table-as-parameter-filter-it-and-return-it – Art