Stored procedures 错误-104创建Firebird存储过程的命令意外结束

Stored procedures 错误-104创建Firebird存储过程的命令意外结束,stored-procedures,firebird,firebird2.5,Stored Procedures,Firebird,Firebird2.5,我想在Firebird中创建一个存储过程: CREATE PROCEDURE CalcPvIncome ( BeginDate date, EndDate date, KwPrice decimal (2,2) ) RETURNS ( Total_PV_Production decimal (9,2), Total_Income decimal (9,2) ) AS BEGIN FOR SELECT SUM(ENERGY/1000

我想在Firebird中创建一个存储过程:

 CREATE PROCEDURE CalcPvIncome
 ( BeginDate date,
   EndDate   date,
   KwPrice   decimal (2,2) ) 
   
RETURNS ( Total_PV_Production decimal (9,2),
          Total_Income decimal (9,2) )
AS
BEGIN
  
   FOR SELECT SUM(ENERGY/1000), SUM((ENERGY/1000) * :KwPrice) 
       FROM PVPROD 
       WHERE proddate >= :BeginDate AND proddate <= :Enddate 
       INTO :Total_PV_Production , :Total_Income
       DO
       
       BEGIN
        SUSPEND ;
       END
END
创建过程CalcPvIncome
(开始日期,
截止日期,
KwPrice十进制(2,2))
返回值(总产量小数(9,2),
总收入(小数点后(9,2))
作为
开始
对于选择的总和(能量/1000),总和((能量/1000)*:KwPrice)
来自PVPROD

其中proddate>=:BeginDate和proddate='12.06.2012'和proddate必须在存储过程前后添加
SET TERM
语句。它用于更改“终止符字符”。下面是一个例子:

SET TERM ^ ;

CREATE PROCEDURE CalcPvIncome
( BeginDate date,
  EndDate   date,
  KwPrice   decimal (2,2) ) 

RETURNS ( Total_PV_Production decimal (9,2),
          Total_Income decimal (9,2) )
AS
BEGIN
  ...
END

SET TERM ; ^
请注意,默认终止符是
^
,还请注意您正在设置
在存储过程声明之前作为新终止符,并在存储过程声明之后将其重置回
^

您遇到了什么错误!?!?!?可能重复的
SET TERM ^ ;

CREATE PROCEDURE CalcPvIncome
( BeginDate date,
  EndDate   date,
  KwPrice   decimal (2,2) ) 

RETURNS ( Total_PV_Production decimal (9,2),
          Total_Income decimal (9,2) )
AS
BEGIN
  ...
END

SET TERM ; ^