Hi All,
Happy 2021!
I have a CLLE that sporadically is getting an error stating it cannot find
a UDTF function.
I can see that the *LIBL is correct.
I am able to run this program by itself without error if I call it
interactively or submit the job to batch.
The problem only appears when the CLLE is called from within a larger job
stream that is submitted from the job scheduler.
It seems like it must be environment related but other than the *LIBL I
don't know what else could cause this.
Google has pointed me in the direction of a parameter mismatch with SQL
thinking I have overloaded the function, but if that were the case wouldn't
it bomb all the time?
As always, thanks in advance and any help appreciated.
Anyway...here are the relevant pieces.
FUNCTION:
CREATE OR REPLACE FUNCTION FMALIB/IFSDIR(dirname VARCHAR(500))
  RETURNS TABLE
  (
    filename    varchar(640),
    size        decimal(20, 0),
    type        varchar(10),
    create_time timestamp,
    access_time timestamp,
    modify_time timestamp,
    change_time timestamp,
    ccsid       decimal(5, 0),
    owner       char(10),
    group       char(10),
    checked_out char(10)
  )
  EXTERNAL NAME 'FMALIB/IFSDIR(IFSDIR)'
  LANGUAGE RPGLE
  PARAMETER STYLE DB2SQL
  NO SQL
  NOT DETERMINISTIC
 NO EXTERNAL ACTION
 NOT FENCED
 NO SCRATCHPAD
 NO FINAL CALL
 DISALLOW PARALLEL
 CARDINALITY 1
CLLE:
DCL        VAR(&PROCPATH )   TYPE(*CHAR) LEN(1024)
DCL        VAR(&RUNSQL   )   TYPE(*CHAR) LEN(2048)
DCL        VAR(&SQuote   )   TYPE(*CHAR) Len(1) Value('''')
CHGVAR     VAR(&RUNSQL) VALUE('CREATE TABLE +
             QTEMP/IFSDIRO AS (SELECT * FROM +
             TABLE(IFSDIR(' *TCAT &SQUOTE *TCAT +
             %TRIM(&PROCPATH) *TCAT &SQUOTE *TCAT +
             ')) as T) WITH DATA')
RUNSQL     SQL(&RUNSQL) COMMIT(*NONE) NAMING(*SYS)
JOBLOG:
                                      Message . . . . :    43300 - RUNSQL
SQL('CREATE TABLE QTEMP/IFSDIRO AS (SELECT
                                        * FROM
TABLE(IFSDIR(''/Import/BOP_NHL/PROD/PROCESS/Headers'')) as T) WITH
                                        DATA') COMMIT(*NONE) NAMING(*SYS)
 CPD439C    Diagnostic              40   01/07/21  10:22:03.031941  QQQVFMT
     QSYS        *STMT    QSQCRTT     QSYS
                                      From module . . . . . . . . :
QQQVFMT
                                      From procedure  . . . . . . :
QQQSNDPMSG
                                      Statement . . . . . . . . . :   1530
                                      To module . . . . . . . . . :
QSQCRTT
                                      To procedure  . . . . . . . :
ADD_TABLE_AS_COLS
                                      Statement . . . . . . . . . :   33292
                                      Thread  . . . . :   000008DB
                                      Message . . . . :   Function IFSDIR
not found in library *N.
                                      Cause . . . . . :   Function IFSDIR
was not found during function resolution
                                        for reason code 1. The reason codes
and their meanings follow: 1 -- No
                                       function could be found with the
name specified. 2 -- A function was found
                                       in library            with the name
specified, but required a different
                                       number of parameters than specified.
3 -- A function was found in library
                                                  with the name and number
of parameters specified, but parameter 0
                                       had a data type that was not
promotable to the data type of the parameter
                                       defined for the function. A library
name of *N indicates that the current
                                       SQL path was used. Recovery  . . . :
  Refer to the DB2 for i SQL
                                       programming topic collection in the
Database category in the IBM i
                                       Information Center book,
http://www.ibm.com/systems/i/infocenter/ for more
                                       information on functions and
function resolution. Correct the name,
                                       arguments or path specified for the
function. Try the request again.
(MM) E AM-0960 J OB AMAPJG (AMAPJG) CONFLICTS WITH JOB-QZRCSRVS,
USER-HEATHERS, JOB NO.-80836
As an Amazon Associate we earn from qualifying purchases.