Ola galera to tentando fazer uma function com pipeline que me retorne uma tabela aninhada de colunas dinamicas.
É mais ou mesno assim eu criei uma procedure que varre uma tabela para criar um type com a quantidade de colunas equivalente a quantidade de registros que existe nesta tabela. Segue abaixo:
create or replace
PROCEDURE PRC_CREATE_TYPES_CV AS
VR_CAMPOS VARCHAR(4000);
VR_SQL VARCHAR(4000);
BEGIN
VR_CAMPOS:= '';
FOR VR_CURCV IN (
SELECT CLA_CODIGO FROM DBT.CLASSE_VALOR
WHERE CLA_DELETE = 'N' AND CLA_BLOQUEADO = 'N')
LOOP
VR_CAMPOS:= VR_CAMPOS || ' CV_' || VR_CURCV.CLA_CODIGO || ' VARCHAR2(5), ';
END LOOP;
VR_CAMPOS:= VR_CAMPOS || ' CEN_CODIGO VARCHAR2(12)';
VR_SQL:= 'CREATE OR REPLACE TYPE T_ROW_CV AS OBJECT ( ' || VR_CAMPOS ||' )';
--CRIA O TIPO COM A QUANTIDADE DE COLUNAS DINAMICAS
EXECUTE IMMEDIATE VR_SQL;
--CRIA A TABELA BASEADO NO TIPO DINAMICO
EXECUTE IMMEDIATE 'CREATE OR REPLACE TYPE T_TABLE_CV AS TABLE OF T_ROW_CV';
COMMIT;
END PRC_CREATE_TYPES_CV;
Ate essa parte ta td blz eu consegui criar meu type com as colunas e a minha tabela aninhada. Agora foi onde eu travei… como eu vou fazer para inserir no pipe row da minha function de forma dinamica sendo que os nomes das classes podem mudar de quantidade e nome?