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

时间:2011-02-02 22:42:52

标签: variables firebird declaration firebird2.5

我有一行查询:

DECLARE VARIABLE var_SecondsOfTime INTEGER;

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

  

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

     

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

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

有什么问题?

2 个答案:

答案 0 :(得分:4)

Firebird 2.5支持执行由 execute block 语句包围的代码块,试试这个:

set term ^ ;

EXECUTE BLOCK 
AS
   DECLARE VARIABLE var_SecondsOfTime INTEGER;

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

set term ^ ;

我发出了select,因为我很确定无法执行空块,请自行尝试删除select。

isql running the block

修改 我的原始选择对于块无效,我添加了into子句来收集结果。我从未使用过firebird maestro,但它现在可以在isql上完美运行,如图所示。

答案 1 :(得分:3)

试试这个:

set term ^ ;

EXECUTE BLOCK 
AS
   DECLARE VARIABLE var_SecondsOfTime INTEGER;

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

set term  ;^

第二组术语需要克拉前的半结肠。