From e967e13fa0b415edbf0476ea54cf7e6bda1981ca Mon Sep 17 00:00:00 2001 From: Alex Zaw Date: Wed, 25 Feb 2026 23:01:15 +0000 Subject: [PATCH] Update Function GET_XA_SUBSET --- CISTOOLS/Functions/GET_XA_SUBSET.sql | 71 +++++++++++++++++++++++++++- 1 file changed, 70 insertions(+), 1 deletion(-) diff --git a/CISTOOLS/Functions/GET_XA_SUBSET.sql b/CISTOOLS/Functions/GET_XA_SUBSET.sql index a6f2b1c..fcf13de 100644 --- a/CISTOOLS/Functions/GET_XA_SUBSET.sql +++ b/CISTOOLS/Functions/GET_XA_SUBSET.sql @@ -1 +1,70 @@ -@@\@^@ % %@@@@Kmm@M@ %m@M]@]@ %@M]@@@ %@@ %@Kmm@ %@@ %@@@ %@@@@ %@@@@~@\@k@ %@~@\@k@ %@~@\@k@ %@~@\@k@ %@~@Mk@k@]@k@ %@~@\@k@ %@~@\@k@ %@~@\@@@ %@ %@@@M@@]@@}}@^@ %@m@k@@@@@^@ %@m@@M@@]@@}}@^@ %@m@@@m@^@ %@@@@@@@@~@@^@ %@@@@@@@~@@^@ %@m@~@}}@^@ %@@~@@^@ %@m@@@ %@M@@M@@k@@k@@M@}@@}@k@@M@@]@]@`@@]@]@m@ %@@ %@@~@m@ %@ %@@~@@@ %@m@~@m@N@@^@ %@m@~@@@ %@@ %}ą@Ǔ@ㅔ@あ@ⅢK}@OO@m@OO@ %}@@%@@@@@@@@@@@@@@@@@@@@@M⅓@\%@@@@@@@@@@@@@@@@@@@@@@@@@@@ƙ@あM}@OOm@OO@}]]%@@@@@@@@@@@@@@@@@@@@@扣@ā%@@@@@@@@@@@@@@@扣@م}@^@ %@ %@@}ɕ@ɕ@ⅢK}@OO@m@OO@ %}@⅓@\%@@@@@@@@@@@@@@@@@@ƙ@あM}@OO@m@OO@}]}@^@ %@@^@ %@@^@ %@@^@ %@m@@ %}偓@DžmM}}⅓@\@ƙ@ⅢK}@OO@m@OO@ %}}}]@ɕ@o}@^@ %@m@@m@^@ %@m@^@ %@@^@ % %@@@@@Kmm@ %M@m@@}@㖒}@]@^@ % %@@@@Kmm@ %@}Dž@@⤂}@^@ % %@@k@@@@ %@@@Kmm@ %@@@@@^@ % %@@@@ %@@@Kmm@ %@@^@ % % \ No newline at end of file +SET PATH *LIBL ; + +CREATE OR REPLACE FUNCTION CISTOOLS.GET_XA_SUBSET ( + XA_TOKEN CHAR(10) ) + RETURNS CLOB(1048576) + LANGUAGE SQL + SPECIFIC CISTOOLS.GET_XA_SCUBSET + NOT DETERMINISTIC + MODIFIES SQL DATA + CALLED ON NULL INPUT + SET OPTION ALWBLK = *ALLREAD , + ALWCPYDTA = *OPTIMIZE , + COMMIT = *NONE , + DBGVIEW = *SOURCE , + DECRESULT = (31, 31, 00) , + DYNDFTCOL = *NO , + DYNUSRPRF = *OWNER , + SRTSEQ = *HEX + BEGIN +DECLARE PAD CHAR ( 15 ) DEFAULT '' ; +DECLARE XA_COUNT , DONE SMALLINT DEFAULT 0 ; +DECLARE RETURN_DATA CLOB ( 1048576 ) DEFAULT '' ; +DECLARE XA_CURSOR CURSOR FOR XA_STATEMENT ; +DECLARE CONTINUE HANDLER FOR NOT FOUND SET DONE = 1 ; +DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET DONE = 1 ; +SET SQL_STATEMENT = '' ; +SET DONE = 0 ; +FOR XA_SQL AS SELECT +TRIM ( SUBSTR ( SLCL , 1 , LOCATE ( 'FOR FETCH ONLY' , UPPER ( SLCL ) ) - 1 ) )AS XA_SQL +FROM MSCSLT +WHERE TSGP = XA_TOKEN +DO +IF DONE = 0 THEN +SET XA_COUNT = XA_COUNT + 1 ; +IF XA_COUNT = 1 THEN +EXECUTE IMMEDIATE +'Declare Global Temporary Table Session.' || XA_TOKEN || +' As + (Select * + From Table(' ||XA_SQL || ')) + With Data + With Replace' ; +ELSE +EXECUTE IMMEDIATE 'Insert Into Session.' || XA_TOKEN || +' Select * + From Table(' || XA_SQL || ')' ; +END IF ; +END IF ; +END FOR ; +PREPARE XA_STATEMENT FROM +'Values Generate_JSON(''Select * From Session.' || XA_TOKEN || +''') Into ?' ; +EXECUTE XA_STATEMENT USING RETURN_DATA ; +RETURN RETURN_DATA ; +END ; + +COMMENT ON PARAMETER SPECIFIC FUNCTION CISTOOLS.GET_XA_SCUBSET +( XA_TOKEN IS 'XA Token' ) ; + +LABEL ON SPECIFIC FUNCTION CISTOOLS.GET_XA_SCUBSET + IS 'Get Xa Subset' ; + +GRANT ALTER , EXECUTE +ON SPECIFIC FUNCTION CISTOOLS.GET_XA_SCUBSET +TO AMAPICS WITH GRANT OPTION ; + +GRANT EXECUTE +ON SPECIFIC FUNCTION CISTOOLS.GET_XA_SCUBSET +TO PUBLIC ; +