我有一个在线查询:不能在Firebird 2.5中声明变量,为什么?
DECLARE VARIABLE var_SecondsOfTime INTEGER;
但我正在逐渐运行查询后,此消息:
引擎错误(代码= 335544569): 动态SQL错误。 SQL错误代码= -104。令牌未知 - 第1行,第9列。VARIABLE。
SQL错误(代码= -104):无效 令牌。
我在因特网和所有示例显示我使用相同的声明样式处处看。
出了什么问题?
我有一个在线查询:不能在Firebird 2.5中声明变量,为什么?
DECLARE VARIABLE var_SecondsOfTime INTEGER;
但我正在逐渐运行查询后,此消息:
引擎错误(代码= 335544569): 动态SQL错误。 SQL错误代码= -104。令牌未知 - 第1行,第9列。VARIABLE。
SQL错误(代码= -104):无效 令牌。
我在因特网和所有示例显示我使用相同的声明样式处处看。
出了什么问题?
火鸟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^;
我发出的选择,因为我敢肯定这是不可能执行的空块,尝试这自己删除选择。
编辑 我最初的选择是一个块无效,我加入到子句来收集结果。如图所示,我从未使用过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 2011-02-02 23:14:12
@jachguate:我在一个普通的查询中声明它,它由FirebirdMaestro应用程序执行。我想它通过isql连接到数据库。正如我所说,这是一个行查询,没有更多。没有存储过程,没有。只是这行代码。 – Wodzu 2011-02-03 00:01:23