2012-06-28 120 views
1

在我的SQL代碼中的唯一聲明Informix錯誤:發生語法錯誤。錯誤代碼:-201

DEFINE p_starttime DATETIME YEAR TO SECOND; 

我得到這個錯誤從Informix 10.5: ERROR:發生語法錯誤。 錯誤代碼:-201

查詢= DEFINE p_starttime DATETIME YEAR TO SECOND

任何人有一個線索,爲什麼這可能發生?這是一個簡單的陳述。

+0

您需要解釋您正在嘗試執行的操作。您只能在存儲過程的上下文中定義變量。您需要說明您正在使用哪種語言或程序來訪問數據庫。由於許多不同的原因,CREATE FUNCTION語句可能失敗。 (另外,從利益角度來看,從來沒有一個版本爲10.5的Informix;版本分別爲9.40,10.00,11.10,11.50,11.70。您在哪個平臺上使用哪個版本?) –

回答

2

這不是有效的SQL,就這麼簡單。 DEFINE不是您可以在查詢中使用的關鍵字。它是存儲過程語言或SPL語法的一部分,即:

CREATE FUNCTION foo(); 
    DEFINE p_starttime DATETIME YEAR TO SECOND; 
    -- do stuff 
    RETURN p_starttime; 
END FUNCTION; 
+0

這也給出了一個錯誤: 錯誤:發生語法錯誤。 錯誤代碼:-201 查詢= CREATE函數foo() –

+0

對不起,這是從來沒有意思是可運行的存儲過程。我編寫它時沒有訪問Informix實例。它可能應該說'CREATE FUNCTION foo()返回DATETIME年至第二個; ...'。重點是DEFINE不能用於SQL。 – RET