Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

marcelo checon

Uma função pode retornar mais de uma linha de valores

Recommended Posts

Estou começando a utilizar o oracle agora e gostaria de saber se uma função ou procedimento no oracle pode retornar mais de uma linha de resultados para o seguinte caso:

 

select submenu('0.0.1.0') from menu;

 

esta função tem q retornar da seguinte forma

 

0

0.0

0.0.1

 

 

este exemplo é para acriação de um menu dinâmico que gostaria de colocar no meu tcc, a programação no delphi ja esta ok so está faltando trazer o menu montado como no exemplo no sql.

 

desde ja obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para uma function retornar mais de um valor seria preciso criar um TYPE que tivesse multivalor porém este TYPE seria visto somente no Oracle , não haveria como ver isto num programa feito em Delphi.

 

Se a function não envolve acesso ao BD não daria para faze-la no próprio Delphi ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para uma function retornar mais de um valor seria preciso criar um TYPE que tivesse multivalor porém este TYPE seria visto somente no Oracle , não haveria como ver isto num programa feito em Delphi.

 

Se a function não envolve acesso ao BD não daria para faze-la no próprio Delphi ?

 

 

 

Eu ñ gostaria de fazer o tratamento no delphi, pois ele so ficaria o procedimento q monta o menu de acordo com o q a query retornaria, por exemplo:

 

 

temos a tela de cadastro de pessoa fisica q fica na tabela menu como 0.0.1 contudo esse menu fica dentro de cadastro de pessoa (0.0) que fica no menu cadastros (0).

O usuario so vai receber a permissão do menu 0.0.1 e teriamos q trazer as dependencia do menu o 0.0 e o 0

 

 

 

espero q de para entender a situação.

 

obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode ser chamada uma PROCEDURE com mais de um retorno nos parametros.Para isto use parametros do tipo OUT.

 

CREATE OR REPLACE PROCEDURE P_EXEMPLO (P_PAR1 IN VARCHAR2,P_PAR 2 OUT NUMBER,P_PAR3 OUT NUMBER) IS

BEGIN

... BLÁ BLÁ BLA

P_PAR2 := 2;

P_PAR3 := 1000;

END;

 

Teria de chamar uma SP não poderia ser por QUERY.

 

Ajudou ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marcelo,

 

É uma situação bem complicada fazer o retorno de uma coleção de linhas via função e/ou procedure, no link que eu te passei abaixo existe uma forma em que o ODP.Net (Oracle Data Provider for .Net) faz essa comunicação com o banco e pega de volta um cursor. De uma olhada, talvez haja algo similar para voce utilizar no Delphi.

 

O link é http://www.oracle.com/technology/oramag/or.../o16odpnet.html

 

Espero ter ajudado.

 

Um abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.