为什么我的函数不能在 DB2 LUW 上使用相同的关键字?

Why can my function not use same keywords on DB2 LUW?

我在 IBM i DB2 上有以下功能,想在 DB2 LUW 上使用它 (Linux)。我收到的错误是“存在涉及“FENCED”子句的多个或冲突的关键字。SQLCODE=-628,SQLSTATE=42613”。 为什么我不能使用它?文档列出了关键字,所以我看不懂...

CREATE OR REPLACE FUNCTION getHex2Char(IN_HEXCHAR VARCHAR(8))
RETURNS INT
DETERMINISTIC
RETURNS NULL ON NULL INPUT
NO EXTERNAL ACTION 
BEGIN
-- Do some SQL stuff and return result
END

当前支持的 Db2-LUW 版本允许子句 called on null input(语法 null call 具有相同的含义)与 create function 语句。

但是当输入为 null 时,函数可以 return 一个 NULL 或 NOT NULL 值。

returns null on null input 的 Db2 for i 实现当前不在 Db2-LUW 实现中,尽管旧版本支持它。

returns null on null input 子句出现在 Db2-LUW 版本 7.x、8.x、9.1、9.5、9.7、10.1、10.5 中,但已从文档中删除(大概从产品中删除)从 Db2-LUW v11.1 开始。

参考 Db2-LUW 文档link