Tenho uma procedure que é executa no filtro da tela, onde é montada uma query dinâmica pra atender os campos que são enviados ou no no filtro.
Dentro do rec de entrada CT.REC_GERAL, mapeado pela P_GERAL , existe uma table t_servico, preciso fazer um subselect nessa t_servico pra conseguir filtrar o que foi enviado na entrada, estou montando assim:
PROCEDURE SP_BUSCAR_GERAL(P_GERAL IN CT.REC_GERAL,
P_ERRO OUT NUMBER) IS
V_SQL VARCHAR2(30000);
BEGIN
V_SQL := ' SELECT C.ID,
C.NM
FROM CT.TB_GERAL C
WHERE C.ID = 10';
IF (P_GERAL.t_servico.COUNT > 0 ) THEN
V_SQL := V_SQL || ' AND C.ID_SER IN ( SELECT ID_SER';
V_SQL := V_SQL || ' FROM table (P_GERAL .t_servico ))';
END IF;
OPEN C_OUT_RES FOR V_SQL;
Imprimi e a query esta sendo montada assim
SELECT C.ID, C.NM
FROM CT.TB_GERAL C
WHERE C.ID = 10
AND C.ID_SER IN ( SELECT ID_SER FROM table (P_GERAL .t_servico ))
O erro acontece quando executo pelo teste do pl_sql, ele fala que a Referência para coleta não inicializada.
Eu não consigo montar esse subselect numa table(record), que esta dentro do rec de entrada e vem preenchida pela entrada da proc?
Desde já agradeço.