创建 DB2400 外部用户定义的 table 函数?
Create DB2400 external user defined table function?
我正在尝试在 DB2400 中创建一个 UDTF
我有一个要调用的 ILE CL 程序。程序已创建,运行如我所愿。
我创建了 UDTF
create function SMLFQA.XAJJUPC_LE(USERID CHAR(10))
returns table (
STATUS CHAR(3),
USED DEC(7, 0),
CREATED DEC(7, 0),
SIGNON DEC(7, 0),
EXCLUDE DEC(7, 0))
EXTERNAL NAME 'SMLPQA/XAJJUPC_LE'
specific XAJJUPC_LE
language CL
DISALLOW PARALLEL
NO SQL
PARAMETER STYLE DB2SQL
它显然已创建
我试试运行吧
select * from table(smlfqa.xajjuc_le('xxxxx')) a
我得到了什么
select * from table(smlfqa.xajjuc_le('xxxxx')) a
[SQL0204] XAJJUC_LE in SMLFQA type *N not found.
Elapsed Time: 0 hr, 0 min, 0 sec, 0 ms.
我很确定它会创建,因为在我第一次删除它之前它不会让我再次创建它。
对我做错了什么有什么建议吗?
SQL 中的字符串文字是 varchar。您已将 UDTF 定义为需要一个字符参数。
由于 SQL 允许函数重载,它正在寻找接受 varchar 的函数。
要么将参数更改为 varchar(CL 不支持),要么强制转换文字。
select * from table(smlfqa.xajjuc_le(char('xxxxx'))) a
我正在尝试在 DB2400 中创建一个 UDTF
我有一个要调用的 ILE CL 程序。程序已创建,运行如我所愿。
我创建了 UDTF
create function SMLFQA.XAJJUPC_LE(USERID CHAR(10))
returns table (
STATUS CHAR(3),
USED DEC(7, 0),
CREATED DEC(7, 0),
SIGNON DEC(7, 0),
EXCLUDE DEC(7, 0))
EXTERNAL NAME 'SMLPQA/XAJJUPC_LE'
specific XAJJUPC_LE
language CL
DISALLOW PARALLEL
NO SQL
PARAMETER STYLE DB2SQL
它显然已创建
我试试运行吧
select * from table(smlfqa.xajjuc_le('xxxxx')) a
我得到了什么
select * from table(smlfqa.xajjuc_le('xxxxx')) a
[SQL0204] XAJJUC_LE in SMLFQA type *N not found.
Elapsed Time: 0 hr, 0 min, 0 sec, 0 ms.
我很确定它会创建,因为在我第一次删除它之前它不会让我再次创建它。
对我做错了什么有什么建议吗?
SQL 中的字符串文字是 varchar。您已将 UDTF 定义为需要一个字符参数。
由于 SQL 允许函数重载,它正在寻找接受 varchar 的函数。
要么将参数更改为 varchar(CL 不支持),要么强制转换文字。
select * from table(smlfqa.xajjuc_le(char('xxxxx'))) a