将字符串值设置为标量变量 HSQLDB
Posted
技术标签:
【中文标题】将字符串值设置为标量变量 HSQLDB【英文标题】:SET String value To Scalar Variable HSQLDB 【发布时间】:2017-02-10 10:36:42 【问题描述】:我尝试如下;
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
的错误。我不能为声明的标量变量设置值吗?
在文档中说要以这种格式使用。来自文档;
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 版本
【问题讨论】:
抱歉,这是复制粘贴错误。现已修复。 使用最新的 HSQLDB 快照版本进行学习。它改进了对程序的支持。 @fredt :试过了,没有更多错误。谢谢!请发布此答案,以便我可以标记问题已解决。 【参考方案1】:此问题已在最新的 HSQLDB 代码中得到修复。下一个版本 2.4.0 支持它。下一个版本的快照目前可在 http://hsqldb.org/support
【讨论】:
以上是关于将字符串值设置为标量变量 HSQLDB的主要内容,如果未能解决你的问题,请参考以下文章