Не могу объявить переменную в Firebird 2.5, почему? - PullRequest
5 голосов
/ 03 февраля 2011

У меня есть запрос в одну строку:

DECLARE VARIABLE var_SecondsOfTime INTEGER;

Но после выполнения запроса я получаю это сообщение:

Ошибка двигателя (код = 335544569): Динамическая ошибка SQL,Код ошибки SQL = -104.Токен неизвестен - строка 1, столбец 9. VARIABLE.

Ошибка SQL (код = -104): недопустимый токен.

Я искал повсюду в Интернете, и все примеры показываюттот же стиль объявления, который я использую.

Что не так?

Ответы [ 2 ]

4 голосов
/ 26 февраля 2011

Попробуйте это:

set term ^ ;

EXECUTE BLOCK 
AS
   DECLARE VARIABLE var_SecondsOfTime INTEGER;

BEGIN
  SELECT  1 from RDB$DATABASE  into :var_SecondsOfTime ;
END^

set term  ;^

Второму заданному члену нужна точка с запятой до карата.

3 голосов
/ 03 февраля 2011

Firebird 2.5 поддерживает выполнение блоков кода, окруженных блоком выполнения , попробуйте это:

set term ^ ;

EXECUTE BLOCK 
AS
   DECLARE VARIABLE var_SecondsOfTime INTEGER;

BEGIN
  SELECT 1 from RDB$DATABASE into var_SecondsOfTime ;
END
^

set term ; ^

Я выдал выбор, потому что уверен, что выполнить пустой блок невозможно, попробуйте сделать это самостоятельно, удалив выбор.

isql running the block

Редактировать Мой исходный выбор был недействительным для блока, я добавил предложение в, чтобы получить результат. Я никогда не использовал Firebird Maestro, но теперь он отлично работает на isql, как показано.

...