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

ответ

1

Эта проблема была исправлена ​​в последней версии кода HSQLDB. Следующая версия 2.4.0 поддерживает его. Снимок следующей версии в настоящее время доступен по адресу http://hsqldb.org/support

Смежные вопросы