Query Dinamica com filtro em uma table(records).

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
  

Mensagemem Sex, 31 Ago 2018 5:05 pm

Senhores, boa tarde.

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:

Código: Selecionar todos
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;


.....segue a implementação

Imprimi e a query esta sendo montada assim

Código: Selecionar todos
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 ))


se eu executo no sql_window do pl/sql developer ele não da problema de sintaxe, mas claro que não encontra a tabela (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.
Moloukos
Localização: São Paulo - SP

Moloukos Rox


Voltar para PL/SQL

Quem está online

Usuários navegando neste fórum: Bing [Bot] e 12 visitantes

cron