2017-02-10 82 views
1

我試過像下面;SET字符串值標量變量HSQLDB

CREATE PROCEDURE GetHs(IN FRVDate TIMESTAMP, IN TRVDate TIMESTAMP, IN RESValue NUMERIC(19,2), 
RangeType VARCHAR(20), HRID VARCHAR(36)) 
READS SQL DATA 
    DYNAMIC RESULT SETS 1 
     BEGIN ATOMIC 
      DECLARE TABLE myList(MValue NUMERIC(19,2), Price NUMERIC(19,2), FRVDate TIMESTAMP,TRVDate TIMESTAMP); 
      DECLARE Counter INT; 
      DECLARE dateDifference NUMERIC(19,2); 
      DECLARE for_day,for_week VARCHAR(20); 

      SET for_day = 'DAY'; 
      SET for_week = 'WEEK'; 

       IF RangeType = for_day THEN 
        BEGIN ATOMIC 
        ----statements---- 
        END 
        ELSEIF RangeType = for_week THEN 
        BEGIN ATOMIC 
        ----statements---- 
        END 
       END IF 
       SELECT MValue,Price,FRVDate,TRVDate FROM myList 
     END 

我得到錯誤user lacks privilege or object not found: DAY。我可以不將值設置爲聲明的標量變量嗎?

在文檔中它說要使用這種格式。來自DOC;

BEGIN ATOMIC 
DECLARE temp_zero DATE; 
DECLARE temp_one, temp_two INTEGER DEFAULT 2; 
DECLARE temp_three VARCHAR(20) DEFAULT 'no name'; 
-- more statements ... 
SET temp_zero = DATE '2010-03-18'; 
SET temp_two = 5; 
-- more statements ... 
END 

我在做什麼錯了?

注意:開始學習HSQL最近和使用版本2.3.3

+0

對不起,這是一個複製粘貼錯誤。現在修復。 – Raj

+0

使用最新的HSQLDB快照版本進行學習。它改進了對程序的支持。 – fredt

+0

@fredt:試過了,沒有更多的錯誤。謝謝!請發佈這個答案,以便我可以標記問題解決。 – Raj

回答