Problema ao Compilar procedure

Firebird

15/10/2012

Bom dia estou iniciando no banco de dados Firebird, estou tentando criar uma procedure esta emitindo o seguinte erro:

Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 3, column 1.
RETURN.
segue o código abaixo, desde já agraço
atenciosamente
João Henrique.
CREATE OR ALTER PROCEDURE SP_BOIGORDO_SALDO_PEDIDOS 
as
RETURN
(idpedido integer,

)
declare variable DATAINICIAL VARCHAR(20);
declare variable DATAFINAL VARCHAR(20);

BEGIN
  FOR
  SELECT COUNT(PEDIDOS.idpedido)as VC50 FROM pedidos
  LEFT join ITENSPEDIDO ON (PEDIDOS.idpedido = ITENSPEDIDO.idpedido)
  LEFT JOIN estoque_serv on (itenspedido.idestserv = estoque_serv.idestserv)
  AND estoque_serv.idestserv = 221
  WHERE (PEDIDOS.data_pedido BETWEEN '01.05.2012' AND '10.10.2012')

END

SUSPEND;
GRANT SELECT ON PEDIDOS TO PROCEDURE SP_BOIGORDO_SALDO_PEDIDOS;

GRANT SELECT ON ITENSPEDIDO TO PROCEDURE sp_boigordo_saldo_pedidos;

GRANT SELECT ON ESTOQUE_SERV TO PROCEDURE SP_BOIGORDO_SALDO_PEDIDOS;


GRANT EXECUTE ON PROCEDURE SP_BOIGORDO_SALDO_PEDIDOS TO "PUBLIC";
GRANT EXECUTE ON PROCEDURE SP_BOIGORDO_SALDO_PEDIDOS TO SYSDBA;
grant ALTER ON procedure sp_boigordo_saldo_pedidos   TO SYSDBA;




Joao Macedo

Joao Macedo

Curtidas 0

Respostas

Alisson Santos

Alisson Santos

15/10/2012

Faz a compilação novamente com esse que passei.
Pois pelo que pude notar você estava colocando o As antes do returns e ele vem após.

CREATE OR ALTER PROCEDURE SP_BOIGORDO_SALDO_PEDIDOS
RETURN (idpedido integer
)
AS
declare variable DATAINICIAL VARCHAR(20);
declare variable DATAFINAL VARCHAR(20);

BEGIN
FOR
SELECT COUNT(PEDIDOS.idpedido)as VC50 FROM pedidos
LEFT join ITENSPEDIDO ON (PEDIDOS.idpedido = ITENSPEDIDO.idpedido)
LEFT JOIN estoque_serv on (itenspedido.idestserv = estoque_serv.idestserv)
AND estoque_serv.idestserv = 221
WHERE (PEDIDOS.data_pedido BETWEEN '01.05.2012' AND '10.10.2012')

END

SUSPEND;
GRANT SELECT ON PEDIDOS TO PROCEDURE SP_BOIGORDO_SALDO_PEDIDOS;

GRANT SELECT ON ITENSPEDIDO TO PROCEDURE sp_boigordo_saldo_pedidos;

GRANT SELECT ON ESTOQUE_SERV TO PROCEDURE SP_BOIGORDO_SALDO_PEDIDOS;


GRANT EXECUTE ON PROCEDURE SP_BOIGORDO_SALDO_PEDIDOS TO "PUBLIC";
GRANT EXECUTE ON PROCEDURE SP_BOIGORDO_SALDO_PEDIDOS TO SYSDBA;
grant ALTER ON procedure sp_boigordo_saldo_pedidos TO SYSDBA;
GOSTEI 0
POSTAR