Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Variables 为什么不能在Firebird 2.5中声明变量?_Variables_Firebird_Declaration_Firebird2.5 - Fatal编程技术网

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,所以我不知道它是否需要不同的终结者,为了以防万一,我用了两个固定术语从句包围了区块。谢谢你的参与,我会很快检查你的更新答案,并让你知道它是否有效。第二个固定术语需要在克拉之前使用分号。。设置术语;^。