Variables 为什么不能在Firebird 2.5中声明变量?
我有一个单行查询:Variables 为什么不能在Firebird 2.5中声明变量?,variables,firebird,declaration,firebird2.5,Variables,Firebird,Declaration,Firebird2.5,我有一个单行查询: DECLARE VARIABLE var_SecondsOfTime INTEGER; 但运行查询后,我收到以下消息: 发动机错误代码=335544569: 动态SQL错误。SQL错误代码= -104.令牌未知-第1行第9列。变数 SQL错误代码=-104:无效 代币 我在互联网上到处都找过,所有的例子都显示了我使用的相同的声明风格 怎么了?Firebird 2.5支持执行由语句包围的代码块,请尝试以下操作: set term ^ ; EXECUTE BLOCK AS
DECLARE VARIABLE var_SecondsOfTime INTEGER;
但运行查询后,我收到以下消息:
发动机错误代码=335544569:
动态SQL错误。SQL错误代码=
-104.令牌未知-第1行第9列。变数
SQL错误代码=-104:无效
代币
我在互联网上到处都找过,所有的例子都显示了我使用的相同的声明风格
怎么了?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 ; ^
我之所以发出select,是因为我非常确定不可能执行空块,请自己尝试删除select
编辑
我原来的select对于一个块无效,我添加了into子句来收集结果。我从未使用过firebird maestro,但它现在可以在isql上完美运行,如图所示。尝试以下方法:
set term ^ ;
EXECUTE BLOCK
AS
DECLARE VARIABLE var_SecondsOfTime INTEGER;
BEGIN
SELECT 1 from RDB$DATABASE into :var_SecondsOfTime ;
END^
set term ;^
第二组术语需要在克拉之前加分号。您在哪里声明变量??存储过程,还是在哪里?您从哪里执行代码,isql?其他?@jachguate:我在一个普通查询中声明它,该查询由FirebirdMaestro应用程序执行。我想它是通过isql连接到数据库的。正如我所说的,这是一行查询,仅此而已。没有存储过程,什么都没有。就这一行代码。感谢您的关注,我在执行您的代码后遇到的错误是:引擎错误代码=335544569:DynamicSQL错误。SQL错误代码=-104。令牌未知-第1行第1列。终止SQL错误代码=-104:无效令牌。也许是Firebird Maestro出了什么问题?@Wodzu街区缺少了一个into条款。我个人从未使用过firebird maestro,所以我不知道它是否需要不同的终结者,为了以防万一,我用了两个固定术语从句包围了区块。谢谢你的参与,我会很快检查你的更新答案,并让你知道它是否有效。第二个固定术语需要在克拉之前使用分号。。设置术语;^。