我有一個在線查詢:不能在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