O conceito de Result Set em resposta no Oracle existe através da declaração em package de uma varíável no do tipo Ref Cursor:
 
1) Exemplo para criação no package header....
 
CREATE OR REPLACE PACKAGE pkgXXXXXXXXXX AS
TYPE RefCursor_Gen IS REF CURSOR;
 
2) Utilização no package body, declaramos uma variavel de OUTPUT, exemplo:
    rs_resultset        OUT        RefCursor_Gen;
2.1) Para realizar o output,
 OPEN rs_resultset FOR
  SELECT XXXX FROM XXXX WHERE XXXX = XXXX;
Não tenho nenhum exemplo em SQL Windows para te mandar, mas nós fazemos desse modo em ASP.
 

Ricardo Pilotto 
 

 -----Mensagem original-----
De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]Em nome de Erasmo
Enviada em: terça-feira, 3 de outubro de 2006 11:51
Para: sqlwin@virtualand.net
Assunto: Re: [sqlwin] Procedure PL/SQL retornando valores

Não existe o conceito de ResultSet de resposta no Oracle, como há no Sybase e no SQLServer, ou seja, na execução de uma procedure no Oracle o máximo de retorno são parâmetros IN OUT, nunca uma lista de registros. Mas basta implementar isso rodando a procedure, gravando os registros numa tabela temporária, e depois dando select normalmente nesta tabela temporária. Por exemplo:

Call SqlOraPLSQLPrepare( hsql, 'begin procedure_teste(); end;')
Call SqlOraPLSQLExecute( hsql )
Call SalTblPopulate( tbl1, hsql, 'select nome, endereco from tmp_proc_teste', TBL_FillAll)

Sds,
Erasmo

- 

Erasmo Bispo de Oliveira Junior
Gerente de Pesquisa e Desenvolvimento
Softway - Softcomex Informática Ltda.
Pabx:   +55 (19) 3739.9200
Direto: +55 (19) 3739.9361
Fax:    +55 (19) 3739.9240
e-mail: [EMAIL PROTECTED]
web:    http://www.softcomex.com.br

Januario Lachman Junior wrote:
        Olá pessoal, alguém poderia me enviar um exemplo de como utilizar PROCEDURES PL/SQL que retorem valores, por exemplo, eu gostaria de popular uma "child table window" a partir de uma procedure, pois está um pouco lento para popular via select dentro da aplicação. Eu usava muito isso com o banco SYBASE, gerava uma tabela temporária na PROC, melhorou bastante a performance,gostaria de um exemplo para o Oracle. Utilizo Centura 3.0
 
 
    Atenciosamente
 

________________________________
Januario Lachman Junior
Analista de Sistemas
Badesc - Agência de Fomento de SC
[EMAIL PROTECTED]
www.badesc.gov.br
(48)3216-5081
 
 


-

Responder a