Fórum Stored Dinâmica - Execute Statement não funciona PQ? #47419
13/10/2004
0
Pessoal,
Tenho essa stored que é montada dinamicamente. Está dando erro somente quando passo o comando para minha variável XSQL. Quando uso o ´For Select do Suspend´ funciona. Mas quando uso ´For Execute Statement XSQL into...´ dá um erro na hora de executar a stored.
Erro: ´variable type (position 1) in EXECUTE STATEMENT ´SELECT PONTODEVENDA.DESCRICAOPONTODEVENDA, INTO DOES NOT MATCH RETURN´ ´.
Alguem saberia me esplicar o PQ e como solucionar?
Segue a stored:
----------------------------------------
CREATE PROCEDURE SP_RPT_OPERADORA_VENDA (RESTRICAO VARCHAR(500))
RETURNS (
DESCRICAOPONTODEVENDA VARCHAR(50),
SUM_OF_QTDEVENDA INTEGER,
SUM_OF_VALORBRUTOVENDA NUMERIC(15,2),
SUM_OF_COMISSAOVENDA NUMERIC(15,2),
SUM_OF_VALORLIQUIDOVENDA NUMERIC(15,2),
CODOPERADORA VARCHAR(10))
AS
DECLARE VARIABLE XSQL VARCHAR(1000);
begin
XSQL = ´SELECT PONTODEVENDA.DESCRICAOPONTODEVENDA,
SUM( VENDA.QTDEVENDA ) SUM_OF_QTDEVENDA,
SUM( VENDA.VALORBRUTOVENDA ), SUM_OF_VALORBRUTOVENDA,
SUM( VENDA.COMISSAOVENDA ) SUM_OF_COMISSAOVENDA,
SUM( VENDA.VALORLIQUIDOVENDA ) SUM_OF_VALORLIQUIDOVENDA,
VENDA.OPERADORAVENDA
FROM VENDA
INNER JOIN PONTODEVENDA ON (VENDA.PONTODEVENDAVENDA = PONTODEVENDA.CODPONTODEVENDA)
GROUP BY PONTODEVENDA.DESCRICAOPONTODEVENDA, VENDA.OPERADORAVENDA´;
IF (NOT RESTRICAO IS NULL) THEN
XSQL = XSQL || RESTRICAO;
FOR EXECUTE STATEMENT XSQL INTO :DESCRICAOPONTODEVENDA,
:SUM_OF_QTDEVENDA,
:SUM_OF_VALORBRUTOVENDA,
:SUM_OF_COMISSAOVENDA,
:SUM_OF_VALORLIQUIDOVENDA,
:CODOPERADORA
DO
suspend;
end
--------------------------------------
Tenho essa stored que é montada dinamicamente. Está dando erro somente quando passo o comando para minha variável XSQL. Quando uso o ´For Select do Suspend´ funciona. Mas quando uso ´For Execute Statement XSQL into...´ dá um erro na hora de executar a stored.
Erro: ´variable type (position 1) in EXECUTE STATEMENT ´SELECT PONTODEVENDA.DESCRICAOPONTODEVENDA, INTO DOES NOT MATCH RETURN´ ´.
Alguem saberia me esplicar o PQ e como solucionar?
Segue a stored:
----------------------------------------
CREATE PROCEDURE SP_RPT_OPERADORA_VENDA (RESTRICAO VARCHAR(500))
RETURNS (
DESCRICAOPONTODEVENDA VARCHAR(50),
SUM_OF_QTDEVENDA INTEGER,
SUM_OF_VALORBRUTOVENDA NUMERIC(15,2),
SUM_OF_COMISSAOVENDA NUMERIC(15,2),
SUM_OF_VALORLIQUIDOVENDA NUMERIC(15,2),
CODOPERADORA VARCHAR(10))
AS
DECLARE VARIABLE XSQL VARCHAR(1000);
begin
XSQL = ´SELECT PONTODEVENDA.DESCRICAOPONTODEVENDA,
SUM( VENDA.QTDEVENDA ) SUM_OF_QTDEVENDA,
SUM( VENDA.VALORBRUTOVENDA ), SUM_OF_VALORBRUTOVENDA,
SUM( VENDA.COMISSAOVENDA ) SUM_OF_COMISSAOVENDA,
SUM( VENDA.VALORLIQUIDOVENDA ) SUM_OF_VALORLIQUIDOVENDA,
VENDA.OPERADORAVENDA
FROM VENDA
INNER JOIN PONTODEVENDA ON (VENDA.PONTODEVENDAVENDA = PONTODEVENDA.CODPONTODEVENDA)
GROUP BY PONTODEVENDA.DESCRICAOPONTODEVENDA, VENDA.OPERADORAVENDA´;
IF (NOT RESTRICAO IS NULL) THEN
XSQL = XSQL || RESTRICAO;
FOR EXECUTE STATEMENT XSQL INTO :DESCRICAOPONTODEVENDA,
:SUM_OF_QTDEVENDA,
:SUM_OF_VALORBRUTOVENDA,
:SUM_OF_COMISSAOVENDA,
:SUM_OF_VALORLIQUIDOVENDA,
:CODOPERADORA
DO
suspend;
end
--------------------------------------
Fabiocarige
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)