创建DB2400外部用户定义的表函数?

时间:2017-09-25 19:59:31

标签: user-defined-functions db2-400

我正在尝试在DB2400中创建UDTF

我想要一个ILE CL程序。该程序已创建并按我的要求运行。

我创建了UDTF

b

显然已经创建了

我尝试运行它

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

我很确定它会创建,因为它不会让我再次创建它,直到我第一次删除它。

关于我做错了什么的任何建议?

1 个答案:

答案 0 :(得分:1)

SQL中的字符串文字是varchar。您已将UDTF定义为需要char参数。

由于SQL允许函数重载,因此它正在寻找一个接受varchar的函数。

将parm更改为varchar(CL不支持),或者转换文字。

select * from table(smlfqa.xajjuc_le(char('xxxxx'))) a