2012-09-25 23 views
1

我想創建火鳥存儲過程:錯誤-104命令意外結束創建火鳥存儲過程

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 

我得到這個錯誤:

Engine Code : 335544569

Engine Message : Dynamic SQL Error SQL error code = -104 Unexpected end of command - line 18, column 9

的SQL語句:

SELECT 
    SUM(ENERGY/1000) AS Total_PV_Production, 
    sum((ENERGY/1000)*0.55) as Total_Income 
FROM 
    PVPROD 
where 
    proddate >= '12.06.2012' and proddate <= '12.07.2012' 
+2

**你得到的是什麼**錯誤!?!?!? –

+0

[錯誤-104創建Firebird存儲過程]的可能重複(http://stackoverflow.com/questions/5097326/error-104-creating-firebird-stored-procedure) –

回答

3

您必須在存儲過程之前和之後添加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 ;^

注意,默認情況下終止爲^和還指出,要設置;如前新終止和存儲過程聲明後復位回^