2014-03-05 97 views
1

我試圖模擬一個Oracle函數,它沒有任何參數用於我的JUNIT測試。在內部,由於CURRENT_TIMESTAMP不需要括號,因此HSQLDB必須具有此功能。是否可以創建一個不需要括號的自定義函數?

我想要做這樣的事情:

set database sql syntax ORA false; 

CREATE SCHEMA DATE_FUNCTION AUTHORIZATION DBA; 

CREATE FUNCTION DATE_FUNCTION.HIGH_DATE() RETURNS DATE 
LANGUAGE SQL 
RETURN DATE '9999-12-31'; 

set database sql syntax ORA true; 

select DATE_FUNCTION.HIGH_DATE from dual; 

我得到這個錯誤,但:

Caused by: org.hsqldb.HsqlException: user lacks privilege or object not found: DATE_FUNCTION.HIGH_DATE 
at org.hsqldb.error.Error.error(Unknown Source) 
at org.hsqldb.error.Error.error(Unknown Source) 
at org.hsqldb.ExpressionColumn.checkColumnsResolved(Unknown Source) 

它工作正常:

select DATE_FUNCTION.HIGH_DATE() from dual; 

這是不是一種選擇雖然我不能將括號添加到原始代碼。

感謝您的幫助。

問候,

肖恩

回答

0

HSQLDB還不支持通話功能不添加括號。未來的版本可能會支持這種兼容性。您可以將Java代碼添加到您的測試中,以便爲使用HSQLDB進行測試時選擇的特定名稱模式添加括號。

相關問題