91 lines
2.2 KiB
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 ;
|
|
|