Translate

quarta-feira, 4 de junho de 2014

PL/SQL - Exemplo de uma Package utilizando Type

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