Fórum stored procedure nome da tabela #56120

05/06/2006

0

Como eu faco ter como parametro de entrada em uma procedure o nome da tabela tipo assim:
SET TERM ^ ;

CREATE PROCEDURE APURA_ITEMM (
DATA_INICIAL DATE,
DATA_FINAL DATE,
[b:6f2cf5dae9] TABELA1 varchar(20),
TABELA2 varchar(20))[/b:6f2cf5dae9]
RETURNS (
CODIGO INTEGER,
DESCRICAO VARCHAR(60),
QUANTIDADE INTEGER)
AS
BEGIN
if ([b:6f2cf5dae9]TABELA2[/b:6f2cf5dae9] is null) then BEGIN
FOR SELECT COD_PRODUTO,NOM_PRODUTO,COUNT(QTD_QUANTIDADE)
FROM [b:6f2cf5dae9]:TABELA1[/b:6f2cf5dae9]
WHERE CAST(DAT_EMISSAO AS DATE) BETWEEN :DATA_INICIAL AND :DATA_FINAL
GROUP BY 1,2
ORDER BY 3 DESC
INTO :CODIGO,:DESCRICAO,:QUANTIDADE
DO SUSPEND;
END
ELSE BEGIN
FOR SELECT COD_PRODUTO,NOM_PRODUTO,COUNT(QTD_QUANTIDADE)
FROM [b:6f2cf5dae9]:TABELA1[/b:6f2cf5dae9]
WHERE CAST(DAT_EMISSAO AS DATE) BETWEEN :DATA_INICIAL AND :DATA_FINAL
GROUP BY 1,2
UNION ALL
SELECT COD_PRODUTO,NOM_PRODUTO,COUNT(QTD_QUANTIDADE)
FROM [b:6f2cf5dae9]:TABELA2[/b:6f2cf5dae9]
WHERE CAST(DAT_EMISSAO AS DATE) BETWEEN :DATA_INICIAL AND :DATA_FINAL
GROUP BY 1,2
ORDER BY 3 DESC
INTO :CODIGO,:DESCRICAO,:QUANTIDADE
DO SUSPEND;
END
END
^

SET TERM ; ^


Agradeco desde ja qualquer ajuda


Ronaldomr

Ronaldomr

Responder

Posts

06/06/2006

Thomaz_prg

Você pode usar EXECUTE STATEMENT...

FOR EXECUTE STATEMENT ´SELECT CAMPO FROM ´||:TABELA1||´ WHERE ...´


Responder

Gostei + 0

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

Aceitar