【问题标题】:Is it possible to create a custom function that does not require parentheses?是否可以创建不需要括号的自定义函数?
【发布时间】:2014-03-05 02:19:20
【问题描述】:

我正在尝试模拟一个没有任何 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;

这对我来说不是一个选项,因为我无法在原始代码中添加括号。

感谢您的帮助。

问候,

肖恩

【问题讨论】:

    标签: function hsqldb


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-25
      • 2018-06-19
      • 2016-09-27
      • 1970-01-01
      • 1970-01-01
      • 2020-09-07
      相关资源
      最近更新 更多