PL/SQL parametros cursores

Roger
17 de Junio del 2004
Estoy programando un cursor al que le passo un parametro que és una lista de valores para incluir en una clausula IN:
select * from table where key in (parametro). En concreto el parametro és una lista de codigos INE: '08001','08002','08003'. Pero el cursor no reconoce bien este parametro ya que no devuelve resultados. He probado de poner directament valores de ejemplo en el cursor y si que va bien, asi que creo que el problema radica en el parametro.
Alguien ha programado alguna vez algo parecido y puede darme una ayuda?
Muchas gracias.

nerea
17 de Junio del 2004
En un parámetro sólo se puede pasar un valor. Para pasar una lista de valores necesitas utilizar SQL dinámico:
type ptr_cursor is REF CURSOR;
mi_cursor ptr_cursor;
BEGIN
sentencia:='select * from table where key in ('||mi_lista||')';
open mi_cursor for sentencia;
loop
fetch mi_cursor into .......
exit when mi_cursor%NOTFOUND;
.....
end loop;
close mi_cursor;