[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
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