2017-02-10 91 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

回答