Files
SQL/CISTOOLS/Functions/SET_LIBRARY_LIST.sql

91 lines
2.2 KiB
SQL

SET PATH *LIBL ;
CREATE OR REPLACE FUNCTION CISTOOLS.SET_LIBRARY_LIST (
INENV CHAR(2) )
RETURNS VARCHAR(1000)
LANGUAGE SQL
SPECIFIC CISTOOLS.SETLIBL
NOT DETERMINISTIC
MODIFIES SQL DATA
CALLED ON NULL INPUT
NOT FENCED
SET OPTION ALWBLK = *ALLREAD ,
ALWCPYDTA = *OPTIMIZE ,
COMMIT = *NONE ,
DBGVIEW = *SOURCE ,
DECRESULT = (31, 31, 00) ,
DYNDFTCOL = *NO ,
DYNUSRPRF = *OWNER ,
SRTSEQ = *HEX
BEGIN
DECLARE LIB_COUNT INT DEFAULT 0 ;
DECLARE LIB_LIST VARCHAR ( 1000 ) DEFAULT '' ;
SET CISTOOLS . MAPICS_ENV = '' ;
SET LIB_LIST = (
SELECT LISTAGG ( FRAGMENT )
FROM TABLE (
CISTOOLS . SPLIT_STRING (
(
SELECT
CAST (
RPAD ( LIB01 , 11 , ' ' ) ||
RPAD ( LIB02 , 11 , ' ' ) ||
RPAD ( LIB03 , 11 , ' ' ) ||
RPAD ( LIB04 , 11 , ' ' ) ||
RPAD ( LIB05 , 11 , ' ' ) ||
RPAD ( LIB06 , 11 , ' ' ) ||
RPAD ( LIB07 , 11 , ' ' ) ||
RPAD ( LIB08 , 11 , ' ' ) ||
RPAD ( LIB09 , 11 , ' ' ) ||
RPAD ( LIB10 , 11 , ' ' ) ||
RPAD ( LIB11 , 11 , ' ' ) ||
RPAD ( LIB12 , 11 , ' ' ) ||
RPAD ( LIB13 , 11 , ' ' ) ||
RPAD ( LIB14 , 11 , ' ' ) ||
RPAD ( LIB15 , 11 , ' ' ) ||
RPAD ( LIB16 , 11 , ' ' ) ||
RPAD ( LIB17 , 11 , ' ' ) ||
RPAD ( LIB18 , 11 , ' ' ) ||
RPAD ( LIB19 , 11 , ' ' ) ||
RPAD ( LIB20 , 11 , ' ' ) ||
RPAD ( LIB21 , 11 , ' ' ) ||
RPAD ( LIB22 , 11 , ' ' ) ||
RPAD ( LIB23 , 11 , ' ' ) ||
RPAD ( LIB24 , 11 , ' ' ) ||
RPAD ( LIB25 , 11 , ' ' ) AS VARCHAR ( 1000 )
CCSID 37 ) AS LIBLIST
FROM QGPL . MMLIST
WHERE LIDES || FIDES = INENV ) , 11 )
)
WHERE EXISTS (
SELECT 1
FROM TABLE (
QSYS2 . SCHEMAS ( )
)
WHERE TRIM ( FRAGMENT ) = ODOBNM ) ) ;
SET LIB_COUNT = ( SELECT COUNT ( * )
FROM TABLE (
CISTOOLS . SPLIT_STRING ( LIB_LIST , 11 )
)
WHERE FRAGMENT <> '' ) ;
CALL CISTOOLS . CHANGE_LIBRARY_LIST ( CUR_LIB => RPAD (
'CISTOOLS' , 11 , ' ' ) , NEW_LIBRARY_LIST => LIB_LIST ,
NUM_LIB => LIB_COUNT ) ;
SET CISTOOLS . MAPICS_ENV = INENV ;
RETURN ( SELECT JSON_OBJECT (
INENV VALUE JSON_ARRAYAGG (
SCHEMA_NAME
)
)
FROM LIBLIST ) ;
END ;
GRANT ALTER , EXECUTE
ON SPECIFIC FUNCTION CISTOOLS.SETLIBL
TO AMAPICS WITH GRANT OPTION ;
GRANT EXECUTE
ON SPECIFIC FUNCTION CISTOOLS.SETLIBL
TO PUBLIC ;