Я пробовал, как показано ниже;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
Извините, это была ошибка копирования. Теперь исправлено. – Raj
Используйте последнюю версию снимка HSQLDB для обучения. Он улучшил поддержку процедур. – fredt
@fredt: Пробовал это и больше никаких ошибок. Благодаря! Пожалуйста, отправьте этот ответ, чтобы я мог отметить вопрос, который был решен. – Raj