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