是否可以创建不需要括号的自定义函数?

时间:2014-03-05 02:19:20

标签: function hsqldb

我正在尝试模拟一个没有任何JUNIT测试参数的Oracle函数。在内部,HSQLDB必须具有此功能,因为CURRENT_TIMESTAMP不需要括号。

我想做这样的事情:

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;

这不是我的选择,因为我无法在原始代码中添加括号。

感谢您的帮助。

此致

肖恩

1 个答案:

答案 0 :(得分:0)

HSQLDB在不添加括号的情况下还不支持调用函数。未来版本可能支持兼容性。您可以在测试中添加Java代码,以便为使用HSQLDB进行测试时选择的特定名称模式添加括号。