From ee5ba9cc86bdc841a3d289868f3b599f6de13b3c Mon Sep 17 00:00:00 2001 From: Alex Zaw Date: Wed, 25 Feb 2026 23:01:28 +0000 Subject: [PATCH] Update Function SANITIZE_COLUMN_NAME --- CISTOOLS/Functions/SANITIZE_COLUMN_NAME.sql | 48 ++++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/CISTOOLS/Functions/SANITIZE_COLUMN_NAME.sql b/CISTOOLS/Functions/SANITIZE_COLUMN_NAME.sql index 6e5ac35..04c9a5d 100644 --- a/CISTOOLS/Functions/SANITIZE_COLUMN_NAME.sql +++ b/CISTOOLS/Functions/SANITIZE_COLUMN_NAME.sql @@ -1 +1,47 @@ -@@\@^@ % %@@@@Kmm@M@ %m@M]@]@ %@M]@@@ %@@ %@Kmm@ %@@ %@@@ %@@@@ %@@@@ %@@@@~@\@k@ %@~@\@k@ %@~@\@k@ %@~@Mk@k@]@k@ %@~@\@k@ %@~@\@k@ %@~@\@k@ %@~@\@@@ %@ %@m@@M@@]@@}@}@^@ %@m@~@m@M@ %@M@ %m@M@ %@M@m@@@M@@]@@@]@k@ %}`Kk^}}yM]aOZ\lmN~Ln[{o|z}@k@}@}@]@]@k@ %}N}@k@}m}@]@^@ %@@M@m@k@@k@@]@@}}@@}}@@ %@m@~@}}@OO@m@OO@}}@^@ %@@^@ %@@M@m@]@^@ %@@^@ % %@@@@@Kmm@ %M@m@@}ɕ@⣙}@]@^@ % %@@@@Kmm@ %@}⁕@Ö@Ձ}@^@ % %@@k@@@@ %@@@Kmm@ %@@@@@^@ % %@@@@ %@@@Kmm@ %@@^@ % % \ No newline at end of file +SET PATH *LIBL ; + +CREATE OR REPLACE FUNCTION CISTOOLS.SANITIZE_COLUMN_NAME ( + INPUT_STRING VARCHAR(32000) ) + RETURNS VARCHAR(32000) + LANGUAGE SQL + SPECIFIC CISTOOLS.SANITIZE_COLUMN_NAME + NOT DETERMINISTIC + READS SQL DATA + CALLED ON NULL INPUT + CONCURRENT ACCESS RESOLUTION DEFAULT + SET OPTION ALWBLK = *ALLREAD , + ALWCPYDTA = *OPTIMIZE , + COMMIT = *NONE , + DECRESULT = (31, 31, 05) , + DYNDFTCOL = *NO , + DYNUSRPRF = *USER , + SQLCURRULE = *STD , + SRTSEQ = *HEX + BEGIN +DECLARE OUTPUT_STRING VARCHAR ( 32000 ) DEFAULT ' ' ; +SET OUTPUT_STRING = REGEXP_REPLACE ( +TRIM ( +REGEXP_REPLACE ( +CAST ( INPUT_STRING AS VARCHAR ( 32000 ) CCSID 37 ) , +'[\s\-.,;''"`\[\]()/\\|!*\%_+=<>^$~#?@:]' , ' ' ) ) , +'\s+' , '_' ) ; +IF SUBSTR ( OUTPUT_STRING , 1 , 1 ) BETWEEN '0' AND '9' THEN +SET OUTPUT_STRING = '"' || OUTPUT_STRING || '"' ; +END IF ; +RETURN TRIM ( OUTPUT_STRING ) ; +END ; + +COMMENT ON PARAMETER SPECIFIC FUNCTION CISTOOLS.SANITIZE_COLUMN_NAME +( INPUT_STRING IS 'Input String' ) ; + +LABEL ON SPECIFIC FUNCTION CISTOOLS.SANITIZE_COLUMN_NAME + IS 'Sanitize Column Name' ; + +GRANT ALTER , EXECUTE +ON SPECIFIC FUNCTION CISTOOLS.SANITIZE_COLUMN_NAME +TO AMAPICS WITH GRANT OPTION ; + +GRANT EXECUTE +ON SPECIFIC FUNCTION CISTOOLS.SANITIZE_COLUMN_NAME +TO PUBLIC ; +