2017-09-25 93 views
0

我想在DB2400中創建一個UDTF創建DB2400外部用戶自定義表函數?

我有一個ILE CL程序,我想調用。該程序創建並運行,如我所願。

創建

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. 

我敢肯定的UDTF它創造,因爲它沒有讓我再次創造它,直到我第一次放棄它。

關於我在做什麼的任何建議是錯誤的?

回答

1

SQL中的字符串文字是varchar。您已將UDTF定義爲需要char參數。

由於SQL允許函數重載,因此它正在尋找一個接受varchar的函數。

將parm更改爲varchar(CL不支持)或者轉換文字。

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