Fórum Stored Procedure com Filtro #52443

24/08/2005

0

Bom dia a todos,

Tenho a seguinte Stored Procedure:

CREATE PROCEDURE retrna_compania
(
PUF VARCHAR(2)
)
RETURNS (
COD INTEGER,
NOME VARCHAR(10),
UF VARCHAR(2)
)

AS
BEGIN
FOR
SELECT COD, NOME, UF
FROM COMPANIA
INTO :COD, :NOME, :UF
DO
SUSPEND;
END


Como modifico essa SP para que se o parametro ´PUF´ nao estiver vazio ele adiciona um filtro no select como : ´WHERE UF = :PUF´ ??

Tentei colocar:

IF (PUF <> ´´) THEN
WHERE UF = :PUF

Mas nao funcionou. Como faço ?? Obrigado


Fredy992

Fredy992

Responder

Posts

24/08/2005

Sremulador

amigo eu já passei por isso, tive que fazer com a centença inteira tipo

if campo is null then begin
....
....
end else begin
....
....
end

se alguem tiver uma solução melhor estamos ai...


Responder

Gostei + 0

24/08/2005

Fredy992

Vc faria assim então ??? :

CREATE PROCEDURE retrna_compania
(
PUF VARCHAR(2)
)
RETURNS (
COD INTEGER,
NOME VARCHAR(10),
UF VARCHAR(2)
)

AS
BEGIN
IF (PUF <> ´´) THEN
BEGIN
FOR
SELECT COD, NOME, UF
FROM COMPANIA
WHERE UF = :PUF
INTO :COD, :NOME, :UF
DO
END ELSE
BEGIN
FOR
SELECT COD, NOME, UF
FROM COMPANIA
INTO :COD, :NOME, :UF
DO
END;
SUSPEND;
END


Responder

Gostei + 0

26/08/2005

Starfox

vc poderia fazer assim:

AS
BEGIN
FOR
SELECT COD, NOME, UF
FROM COMPANIA
INTO :COD, :NOME, :UF

WHERE (:PUF IS NULL OR (UF = :PUF))

DO
SUSPEND;
END


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar