Exemplo de uma Package utilizando Type
create or replace package PR_I_TESTE is
TYPE tRegra IS RECORD ( CAMPO1 NUMBER(8)
,CAMPO2 VARCHAR2(2000)
,CAMPO3 VARCHAR2(40)
,CAMPO4 VARCHAR2(40));
--
TYPE arrayRegra IS TABLE OF tRegra INDEX BY BINARY_INTEGER;
procedure PRC_TESTE (p_Regra OUT PR_I_TESTE.arrayRegra );
end;
--------------------------------------------------------------------
create or replace package body PR_I_TESTE IS
procedure PRC_TESTE (p_Regra OUT PR_I_TESTE.arrayRegra )IS
nIndexRegra number;
begin
p_Regra.Delete();
nIndexRegra := 0;
FOR X IN (select CAMPO1
,CAMPO2
,CAMPO3
,CAMPO4
from tabela_teste) LOOP
--
nIndexRegra := nIndexRegra + 1;
--
p_Regra(nIndexRegra).CAMPO1:= X.CAMPO1;
p_Regra(nIndexRegra).CAMPO2:= X.CAMPO2;
p_Regra(nIndexRegra).CAMPO3:= X.CAMPO3;
p_Regra(nIndexRegra).CAMPO4:= X.CAMPO4;
dbms_output.put_line(nIndexRegra||'-'||p_Regra(nIndexRegra).CAMPO1||'-'||p_Regra(nIndexRegra).CAMPO2);
end loop;
end PRC_TESTE;
end ;
---------------------------------------------------------------
Para testar a procedure
DECLARE
P_REGRA HR.PR_I_TESTE.ARRAYREGRA;
BEGIN
PR_I_TESTE.PRC_TESTE(P_REGRA => P_REGRA);
END;
Nenhum comentário:
Postar um comentário