Update Function ROWS_COUNTER
This commit is contained in:
@@ -1 +1,48 @@
|
|||||||
牄禗袬蒨@\蚕謨@^@
|
SET PATH *LIBL ;
|
||||||
|
|
||||||
|
CREATE OR REPLACE FUNCTION CISTOOLS.ROWS_COUNTER (
|
||||||
|
ENDROW INTEGER )
|
||||||
|
RETURNS TABLE (
|
||||||
|
RN INTEGER )
|
||||||
|
LANGUAGE SQL
|
||||||
|
SPECIFIC CISTOOLS.ROWS_COUNTER
|
||||||
|
DETERMINISTIC
|
||||||
|
READS SQL DATA
|
||||||
|
CALLED ON NULL INPUT
|
||||||
|
SET OPTION ALWBLK = *ALLREAD ,
|
||||||
|
ALWCPYDTA = *OPTIMIZE ,
|
||||||
|
COMMIT = *NONE ,
|
||||||
|
DECRESULT = (31, 31, 00) ,
|
||||||
|
DYNDFTCOL = *NO ,
|
||||||
|
DYNUSRPRF = *USER ,
|
||||||
|
SQLCURRULE = *STD ,
|
||||||
|
SRTSEQ = *HEX
|
||||||
|
BEGIN
|
||||||
|
RETURN WITH RECURSIVE COUNTER ( RN ) AS (
|
||||||
|
SELECT *
|
||||||
|
FROM TABLE (
|
||||||
|
VALUES 1
|
||||||
|
) X ( RN )
|
||||||
|
UNION ALL
|
||||||
|
-- Recursive member, unioned with the result of the previous step.
|
||||||
|
SELECT RN + 1
|
||||||
|
FROM COUNTER
|
||||||
|
WHERE RN < ENDROW
|
||||||
|
) SELECT RN
|
||||||
|
FROM COUNTER ;
|
||||||
|
END ;
|
||||||
|
|
||||||
|
COMMENT ON PARAMETER SPECIFIC FUNCTION CISTOOLS.ROWS_COUNTER
|
||||||
|
( ENDROW IS 'End Row' ) ;
|
||||||
|
|
||||||
|
LABEL ON SPECIFIC FUNCTION CISTOOLS.ROWS_COUNTER
|
||||||
|
IS 'Rows Counter' ;
|
||||||
|
|
||||||
|
GRANT ALTER , EXECUTE
|
||||||
|
ON SPECIFIC FUNCTION CISTOOLS.ROWS_COUNTER
|
||||||
|
TO AMAPICS WITH GRANT OPTION ;
|
||||||
|
|
||||||
|
GRANT EXECUTE
|
||||||
|
ON SPECIFIC FUNCTION CISTOOLS.ROWS_COUNTER
|
||||||
|
TO PUBLIC ;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user