2017-09-25 5 views
0

DB2400에서 UDTF를 작성하려고합니다.DB2400 외부 사용자 정의 테이블 함수를 작성 하시겠습니까?

전화를 걸려는 ILE CL 프로그램이 있습니다. 프로그램이 만들어지고 원하는대로 실행됩니다.

나는 그것은 분명히 내가

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. 

내가 확신 얻을 무엇을

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

를 실행하려고

을 작성되는

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 

UDTF를 만들 그렇지 않기 때문에 만들어집니다. 내가 먼저 떨어 뜨릴 때까지 다시 만들어 보자.

내가 뭘 잘못하고 있는지에 대한 제안이 있으십니까?

답변

1

SQL의 문자열 리터럴은 varchar입니다. UDTF를 char 매개 변수가 필요하다고 정의했습니다.

SQL은 함수 오버로딩을 허용하므로 varchar를 허용하는 함수를 찾고 있습니다.

parm을 varchar (CL에서 지원하지 않음)로 변경하거나 리터럴을 변환하십시오.

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