Update Function GET_XA_SUBSET
This commit is contained in:
@@ -1 +1,70 @@
|
|||||||
牄禗袬蒨@\蚕謨@^@
|
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 ;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user