Marcio

Gostei desse exemplo, então tentei fazer um teste aqui.. mas dá erro. Estou 
conectada com usuário dba do banco..

  1  create or replace procedure invalido ( p_refx out
  2  sys_refcursor )
  3       is
  4       begin
  5          open p_refx for select object_name  from dba_objects where status 
= 'INVALID';
  6*      end;
SQL> /

Advertência: Procedimento criado com erros de compilação.

SQL>  show errors
Erros para PROCEDURE INVALIDO:

LINE/COL ERROR
-------- -----------------------------------------------------------------
5/25     PL/SQL: SQL Statement ignored
5/61     PL/SQL: ORA-00942: a tabela ou view não existe
SQL> 
  ----- Original Message ----- 
  From: Marcio Portes 
  To: [email protected] 
  Sent: Monday, November 21, 2005 8:32 PM
  Subject: Re: [oracle_br] Procedure (ou Function) retornando um Select


  [EMAIL PROTECTED]> create or replace procedure p ( p_refx out 
  sys_refcursor )
     2  is
     3  begin
     4     open p_refx for select * from emp;
     5  end;
     6  /

  Procedure created.

  [EMAIL PROTECTED]> show error
  No errors.
  [EMAIL PROTECTED]>
  [EMAIL PROTECTED]> var x refcursor
  [EMAIL PROTECTED]>
  [EMAIL PROTECTED]> exec p(:x )

  PL/SQL procedure successfully completed.

  [EMAIL PROTECTED]>
  [EMAIL PROTECTED]> print x

           EMPNO ENAME      JOB                 MGR HIREDATE
  ------------- ---------- --------- ------------- -------------------
            7369 SMITH      CLERK              7902 17/12/1980 00:00:00
            7499 ALLEN      SALESMAN           7698 20/02/1981 00:00:00
            7521 WARD       SALESMAN           7698 22/02/1981 00:00:00
            7566 JONES      MANAGER            7839 02/04/1981 00:00:00
            7654 MARTIN     SALESMAN           7698 28/09/1981 00:00:00
            7698 BLAKE      MANAGER            7839 01/05/1981 00:00:00
            7782 CLARK      MANAGER            7839 09/06/1981 00:00:00
            7788 SCOTT      ANALYST            7566 19/04/1987 00:00:00
            7839 KING       PRESIDENT               17/11/1981 00:00:00
            7844 TURNER     SALESMAN           7698 08/09/1981 00:00:00
            7876 ADAMS      CLERK              7788 23/05/1987 00:00:00
            7900 JAMES      CLERK              7698 03/12/1981 00:00:00
            7902 FORD       ANALYST            7566 03/12/1981 00:00:00
            7934 MILLER     CLERK              7782 23/01/1982 00:00:00

  14 rows selected.



  Nícolas Santana wrote:
  > Vc tem algum exemplo para o 9i? Pode ser bem simples mesmo...
  > 
  > 
  > 
  > 
  > 
  > 
  >   ----- Original Message ----- 
  >   From: Salvio Padlipskas 
  >   To: '[email protected]' 
  >   Sent: Monday, November 21, 2005 3:21 PM
  >   Subject: RES: [oracle_br] Procedure (ou Function) retornando um Select
  > 
  > 
  >   Leonardo,
  > 
  >   Existem diferenças nas versões, pois na 9i em diante vc tem
  >   a possibilidade de utilizar o SYS.REFCURSOR.
  > 
  >   Segue abaixo um bom exemplo em 8i
  > 
  >   [ ]'s
  >   Salvio Padlipskas
  > 
  >   
****************************************************************************
  >   *************************
  >   
****************************************************************************
  >   *************************
  >   
****************************************************************************
  >   *************************
  >   create or replace package pkg_teste  as
  >   type refcur is ref cursor;
  >   end;
  >   /
  > 
  >   create or replace function fun_teste( p_cod_emp in number) return
  >   pkg_teste.refcur  as
  >   l_cursor pkg_teste.refcur;
  >   begin
  >         open l_cursor for select * from s_emp where cod = p_cod_emp;
  >         return l_cursor;
  >   end;
  >   /
  > 
  > 
  >   variable x refcursor
  >   set autoprint on
  >   begin
  >         :x := fun_teste(10);
  >   end;
  >   /
  >   
****************************************************************************
  >   *************************
  >   
****************************************************************************
  >   *************************
  >   
****************************************************************************
  >   *************************
  > 
  > 
  > 
  >   -----Mensagem original-----
  >   De: leonardosmartins [mailto:[EMAIL PROTECTED]
  >   Enviada em: segunda-feira, 21 de novembro de 2005 15:06
  >   Para: [email protected]
  >   Assunto: [oracle_br] Procedure (ou Function) retornando um Select
  > 
  > 
  >   Pessoal,
  > 
  >   Alguém teria um exemplo para me mandar de uma procedure (ou function) 
  >   que simplesmente retornasse um select (um recordset)?
  > 
  >   Tentei montar algo aqui mais não deu certo.
  >   Eu queria algo que não precisasse passar nada como parâmetro. Tentei 
  >   montar um procedure simples utilizando o execute imediate mais não deu 
  >   certo.
  > 
  >   Grato pela ajuda.
  >   Leonardo Martins
  > 
  > 
  > 
  > 
  > 
  >   
----------------------------------------------------------------------------
  >   ----------------------------------------------
  >   Atenção! As mensagens deste grupo são de acesso público e de inteira
  >   responsabilidade de seus remetentes.
  >   Acesse: http://www.mail-archive.com/[email protected]/ 
  >   
----------------------------------------------------------------------------
  >   
----------------------------------------------______________________________
  >   _______________________________________
  >   Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423  
  >   Links do Yahoo! Grupos
  > 
  > 
  > 
  > 
  > 
  > 
  > 
  > 
  >   [As partes desta mensagem que não continham texto foram removidas]
  > 
  > 
  > 
  >   
--------------------------------------------------------------------------------------------------------------------------
  >   Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
  >   Acesse: http://www.mail-archive.com/[email protected]/ 
  >   
--------------------------------------------------------------------------------------------------------------------------_____________________________________________________________________
  >   Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423 
  > 
  > 
  >         Yahoo! Grupos, um serviço oferecido por: 
  >               PUBLICIDADE
  >                 
  >        
  > 
  > 
  > 
------------------------------------------------------------------------------
  >   Links do Yahoo! Grupos
  > 
  >     a.. Para visitar o site do seu grupo na web, acesse:
  >     http://br.groups.yahoo.com/group/oracle_br/
  >       
  >     b.. Para sair deste grupo, envie um e-mail para:
  >     [EMAIL PROTECTED]
  >       
  >     c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos do 
Serviço do Yahoo!. 
  > 
  > 
  > 
  > [As partes desta mensagem que não continham texto foram removidas]
  > 
  > 
  > 
  > 
  > 
  > 
--------------------------------------------------------------------------------------------------------------------------
  > Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
  > Acesse: http://www.mail-archive.com/[email protected]/ 
  > 
--------------------------------------------------------------------------------------------------------------------------_____________________________________________________________________
  > Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423  
  > Links do Yahoo! Grupos
  > 
  > 
  > 
  > 
  >  
  > 
  > 
  > 


  
--------------------------------------------------------------------------------------------------------------------------
  Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
  Acesse: http://www.mail-archive.com/[email protected]/ 
  
--------------------------------------------------------------------------------------------------------------------------_____________________________________________________________________
  Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423 


        Yahoo! Grupos, um serviço oferecido por: 
              PUBLICIDADE
                
       


------------------------------------------------------------------------------
  Links do Yahoo! Grupos

    a.. Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/oracle_br/
      
    b.. Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]
      
    c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço 
do Yahoo!. 



[As partes desta mensagem que não continham texto foram removidas]



--------------------------------------------------------------------------------------------------------------------------
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/[email protected]/ 
--------------------------------------------------------------------------------------------------------------------------_____________________________________________________________________
Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423  
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a