Buenos dias, esta es mi duda:
tengo un procedimiento almacenado que ejecuta una consulta como esta:
select p.nombre_pais,
r.nombre,
c.nombre,
l.nom_localidad,
m.nivsocio,
count(m.id) as total
from servcon_manzanas m
INNER JOIN servcon_localidades l ON (m.coddane = l.cod_dane AND m.localidad = l.cod_localidad AND l.cod_localidad IN ('11','01','02','04','06','8','12','13','15'))
INNER JOIN ciudades c ON (m.coddane = c.coddane)
INNER JOIN servcon_regiones r ON (m.codregion = r.cod_region)
INNER JOIN servcon_paises p ON (m.codpais = p.codigo)
where m.coddane = '11001' and
m.localidad IN ('11','01','02','04','06','8','12','13','15') and
m.nivsocio in ('3','2','6','4','5')
group by l.nom_localidad, m.nivsocio,c.nombre,r.nombre,p.nombre_pais
order by m.nivsocio,l.nom_localidad.
Pero los valores de filtro para:
l.cod_localidad IN ('11','01','02','04','06','8','12','13','15')
m.nivsocio in ('3','2','6','4','5')
m.coddane = '11001'
No se como enviarlos como parametro cuando invoco el procedimiento, y tampoco se como colocarlos en el codigo del procedimiento al cual llamo asi:
select * from p_blocks(
'"11","01","02","04","06","82,"12","13","15"',
'"2","3","2","6","4","5"',
'11001')
y no genera error, el query dentro del procedimiento lo cree asi y no genero error tampoco, pero al invocar el procedimiento no genera resultados y estoy esperando 27 filas.
--DEFINICION DE LA CONSULTA DENTRO DE p_blocks
select p.nombre_pais,
r.nombre AS region,
c.nombre AS ciudad,
l.nom_localidad,
m.nivsocio,
count(m.id) as total
from servcon_manzanas m
INNER JOIN servcon_localidades l ON (m.coddane = l.cod_dane AND m.localidad = l.cod_localidad AND l.cod_localidad IN ($1))
INNER JOIN ciudades c ON (m.coddane = c.coddane)
INNER JOIN servcon_regiones r ON (m.codregion = r.cod_region)
INNER JOIN servcon_paises p ON (m.codpais = p.codigo)
where m.coddane = $3 and
m.localidad IN ($1) and
m.nivsocio in ($2)
group by l.nom_localidad, m.nivsocio,c.nombre,r.nombre,p.nombre_pais
order by m.nivsocio,l.nom_localidad
LOOP RETURN NEXT query_result;
END LOOP;
alguien sabe como solucionar el problema