--- Em oracle_br@yahoogrupos.com.br, Nícolas Santana 
<[EMAIL PROTECTED]> escreveu
> Bom dia a todos.
> 
> Estou com algumas duvias com Procedures/Funções no ORACLE 9i, 
espero que vcs possam me ajudar:
> Percebi que para criar uma procedure ou função que retorne uma 
consulta SQL (ex. select * from funcionario) é mais complicado do que 
eu imaginava. 

Function que retorna resultset é :

create or replace function sp_ListEmp return types.cursortype 
as 
    l_cursor    types.cursorType; 
begin 
    open l_cursor for select ename, empno from emp order by ename; 
    return l_cursor; 
end; 
/

e ela exige ue vc crie um tipo seu, esse tipo servira pra TODAS as 
funcs do tipo :

create or replace package types 
as 
    type cursorType is ref cursor; 
end; 
/ 


==> OK, não é uma linha só de programação, são 9 linhas, mas não acho 
que 9 linhas de programação seja um esforço horrível, terrível, 
pavoroso, que exija pós-graduação em física de partículas... 


>Na verdade estou com dúvidas se realmente isso compensará, pois não 
sei se em outras versões do BD as mesmas funcionarão a contento.

Se vc quiser, pode consultar as documentações desde a versão 7.3 do 
banco, passando pela 8.0, 8i, 9i, 10gr1 até a versão 10gr2 que acabou 
de sair do forno, em ** TODAS ** elas existe o REF CURSOR.

> Alguém sabe se uma procedure de consulta pode funcionar e varias 
versões do ORACLE?

Sim, como dito. Notar também que, como eu cito no meu texto de 
tunning q apresentei na ENPO (online em em http://www.enpo-
br.org/downloads.htm ), a ** principal ** vantagem em termos de 
desenvolvimento é que functions/procedures/packages são PL/SQL, e em 
PL/SQL as opções nativas de performance (bind variables, array 
processing, padronização de textos de SQLs) já são ativas por 
default, ou no máximo pedem apenas algum detalhe extra de sintaxe. Já 
se vc enfiar os seus SQLs na aplicação-cliente, fica por sua conta 
fazer isso.

[]s

 Chiappa





--------------------------------------------------------------------------------------------------------------------------
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/oracle_br@yahoogrupos.com.br/ 
--------------------------------------------------------------------------------------------------------------------------_____________________________________________________________________
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