[firebase-br] Cursor
paulosxs Yahoo!
paulosxs em yahoo.com.br
Qui Ago 30 18:03:17 -03 2007
Edson, tanto o Oracle quanto o MS SQL possuem essa capacidade. No
entanto, apesar da flexibilidade, isso não é uma prática recomendada no
desenvolvimento de um sistema bem estruturado. Mesmo matematicamente,
considerando o conceito de função, no qual essas procedures se
enquadram, é abominável. Claro que quem decide é o desenvolvedor, mas,
por uma questão de boas práticas, recomendo padronizar a estrutura de
retorno ou criar uma procedure para cada estrutura de retorno.
Edson de Paulo escreveu:
> Pessoal tenho uma procedure que irá retornar um determinado select de
> acordo com os parâmetros que passei, os resultado de saída pode variar,
> com um select pode retornar Param1, Param2, Param3, com outro select
> pode retornar Param1 e outro retornar Param2 e Param3, ou seja o
> resultado é dinâmico, tem como criar essa procedure sem ter que fixar os
> parâmetros de retorno. Por exemplo no oracle eu faria da seguinte maneira.
>
> CREATE PROCEDURE prcTeste(Retorno OUT IS REF CURSOR, pTipo VARCHAR)
> AS
> BEGIN
> IF pTipo = 'S' THEN
> OPEN retorno FOR
> SELECT campo1, campo2, Campo3
> FROM tabela;
> ELSE
> OPEN retorno FOR
> SELECT campo1
> FROM tabela;
> END IF;
> END;
>
> E dependendo do meu parâmetro pTipo ele irá retornar um cursor com 3 ou
> com 1 campo apenas.
>
> Espero ter sido claro na pergunta, se alguém puder me dar uma dica.
>
> Obrigado
>
>
Mais detalhes sobre a lista de discussão lista