我有一个单行查询:
DECLARE VARIABLE var_SecondsOfTime INTEGER;
但运行查询后,我收到此消息:
引擎错误(代码 = 335544569):动态 SQL 错误。SQL 错误代码 = -104。令牌未知 - 第 1 行,第 9 列。变量。
SQL 错误(代码 = -104):令牌无效。
我在 Internet 上到处查看,所有示例都显示了我正在使用的相同声明样式。
怎么了?
我有一个单行查询:
DECLARE VARIABLE var_SecondsOfTime INTEGER;
但运行查询后,我收到此消息:
引擎错误(代码 = 335544569):动态 SQL 错误。SQL 错误代码 = -104。令牌未知 - 第 1 行,第 9 列。变量。
SQL 错误(代码 = -104):令牌无效。
我在 Internet 上到处查看,所有示例都显示了我正在使用的相同声明样式。
怎么了?
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 ; ^
我发出了选择,因为我很确定不可能执行一个空块,请自己尝试删除选择。
编辑 我原来的选择对块无效,我添加了 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 ;^
第二组术语需要克拉之前的分号。