where dinamico na store procedure

13/02/2006

Esto criando uma store procedure com alguns parametros que não são obrigatórios. Alguém sabe como passar estes parametros somente se não forem nulos na condição do select dentro da procedure.

Exemplo
alter procedure proc Texte(
Campo1 integer,
campo2 integer)
as
begin
for select * from Tabela1
where
if campo1 > 0 then
codcli = :campo1;
if campo2 > 0 then
and codfor = :campo2
do
begin
//..
end;
Isso eu não consegui fazer ele me da um erro.
Se alguém souber.


Acacio

Respostas

13/02/2006

Motta

Tente algo assim :

SELECT *
FROM CLIENTES
WHERE NVL(:P_NF,UF) = UF


Se vc passar um valor ele filtra o valor passado senão
retorna tudo.


Responder Citar