ORACLE – Função que retorna uma tabela

Primeiro se cria um tipo de dados como se deseja

1
2
3
4
5
6
7
8
9
10
11
12
create or replace TYPE "TIPO_DE_DADOS_GENERICO_5N5S" as object (
codcoligada number,
idprj number,
idtrf number,
idprd number,
numerosequencial number,
status varchar2(4000),
acao varchar2(4000),
correcao varchar2(4000),
op1 varchar2(4000),
op2 varchar2(4000)
);

Depois se cria um tipo de dados que retorna um tipo table do tipo de dados anterior.

create or replace TYPE "TAB_GENERICA_5N5S" as table of TIPO_DE_DADOS_GENERICO_5N5S;

Depois se cria uma funcão que retorna uma tabela genérica.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
create or replace
FUNCTION  "EDU_SOLUM_X_NUCLEOS" (N_COL NUMBER,N_PRJ NUMBER)
  RETURN TAB_GENERICA_5N5S AS 
   v_tab TAB_GENERICA_5N5S := TAB_GENERICA_5N5S();
   V_COUNT_MOV NUMBER; --Recebe a quantidade de proximos movimentos
   V_SEQUENCIAL NUMBER; -- Identifica o numero de etapas para cada grupo
BEGIN
   V_COUNT_MOV := 0;
   V_SEQUENCIAL := 0;
   v_tab.extend;        
   v_tab(v_tab.last) := TIPO_DE_DADOS_GENERICO_5N5S(V_COUNT_MOV,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
  RETURN v_tab;
END;

 
 

Documentação de Coleção de Dados: ORACLE DOCS