2011-02-02 53 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 ;^ 

第二組長期需求克拉前的分號。

相關問題