2011-02-02 76 views
4

我有一个在线查询:不能在Firebird 2.5中声明变量,为什么?

DECLARE VARIABLE var_SecondsOfTime INTEGER; 

但我正在逐渐运行查询后,此消息:

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

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

我在因特网和所有示例显示我使用相同的声明样式处处看。

出了什么问题?

+0

你在哪里声明你的变量?存储过程,还是在哪里? 从哪里执行代码,isql?其他? – jachguate 2011-02-02 23:14:12

+0

@jachguate:我在一个普通的查询中声明它,它由FirebirdMaestro应用程序执行。我想它通过isql连接到数据库。正如我所说,这是一个行查询,没有更多。没有存储过程,没有。只是这行代码。 – Wodzu 2011-02-03 00:01:23

回答

4

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

我发出的选择,因为我敢肯定这是不可能执行的空块,尝试这自己删除选择。

isql running the block

编辑 我最初的选择是一个块无效,我加入到子句来收集结果。如图所示,我从未使用过firebird maestro,但它现在可以在isql上完美工作。

3

试试这个:

set term^; 

EXECUTE BLOCK 
AS 
    DECLARE VARIABLE var_SecondsOfTime INTEGER; 

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

set term ;^ 

第二组长期需求克拉前的分号。

相关问题