PL/SQL parametros cursores
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.
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.
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;
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;