7

我有一个单行查询:

DECLARE VARIABLE var_SecondsOfTime INTEGER;

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

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

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

我在 Internet 上到处查看,所有示例都显示了我正在使用的相同声明样式。

怎么了?

4

2 回答 2

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 ; ^

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

isql 运行块

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

于 2011-02-03T00:26:08.813 回答
5

试试这个:

set term ^ ;

EXECUTE BLOCK 
AS
   DECLARE VARIABLE var_SecondsOfTime INTEGER;

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

set term  ;^

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

于 2011-02-26T16:23:14.900 回答