无法在Firebird 2.5中声明变量,为什么?

Wod*_*dzu 5 variables firebird declaration firebird2.5

我有一行查询:

DECLARE VARIABLE var_SecondsOfTime INTEGER;
Run Code Online (Sandbox Code Playgroud)

但运行查询后,我收到此消息:

引擎错误(代码= 335544569):动态SQL错误.SQL错误代码= -104.令牌未知 - 第1行,第9列.VARIABLE.

SQL错误(代码= -104):令牌无效.

我在互联网上随处可见,所有的例子都显示了我正在使用的相同的声明风格.

怎么了?

jac*_*ate 5

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 ; ^
Run Code Online (Sandbox Code Playgroud)

我发出选择是因为我很确定不可能执行一个空块,请自己尝试删除选择。

运行块的 isql

编辑 我的原始选择对一个块无效,我添加了 into 子句来收集结果。我从未使用过 firebird maestro,但现在它在 isql 上运行良好,如图所示。


小智 5

尝试这个:

set term ^ ;

EXECUTE BLOCK 
AS
   DECLARE VARIABLE var_SecondsOfTime INTEGER;

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

set term  ;^
Run Code Online (Sandbox Code Playgroud)

第二组术语需要在克拉之前加分号。