Update Function GET_CAMEL_CASE

This commit is contained in:
2026-02-25 23:00:57 +00:00
parent 541ea7f1e2
commit 943a4f5593

View File

@@ -1 +1,56 @@
@\@^@
SET PATH *LIBL ;
CREATE OR REPLACE FUNCTION CISTOOLS.GET_CAMEL_CASE (
INSTRING VARCHAR(528) )
RETURNS VARCHAR(528)
LANGUAGE SQL
SPECIFIC CISTOOLS.GET_CAMEL_CASE
DETERMINISTIC
READS SQL DATA
CALLED ON NULL INPUT
NO EXTERNAL ACTION
SET OPTION ALWBLK = *ALLREAD ,
ALWCPYDTA = *OPTIMIZE ,
COMMIT = *NONE ,
DECRESULT = (31, 31, 00) ,
DYNDFTCOL = *NO ,
DYNUSRPRF = *USER ,
SRTSEQ = *HEX
BEGIN
DECLARE V_WORKSTR VARCHAR ( 528 ) ;
DECLARE V_RESULT VARCHAR ( 528 ) ;
-- Normalize to lowercase and replace separators with spaces
SET V_WORKSTR = LOWER (
REGEXP_REPLACE (
TRIM ( CAST ( INSTRING AS VARCHAR ( 528 ) CCSID 37 ) ) ,
'(_|-|\\.|\\s)+' , ' ' ) ) ;
-- Capitalize each word
SET V_RESULT = (
SELECT TRIM (
LISTAGG (
UPPER ( LEFT ( TRIM ( ELEMENT ) , 1 ) ) ||
SUBSTR ( TRIM ( ELEMENT ) , 2 ) , '' )
WITHIN GROUP ( ORDER BY ORDINAL_POSITION ) )
FROM TABLE (
SYSTOOLS . SPLIT ( V_WORKSTR , ' ' )
)
WHERE TRIM ( ELEMENT ) <> '' ) ;
-- Make first character lowercase
SET V_RESULT = LOWER ( LEFT ( V_RESULT , 1 ) ) || SUBSTR ( V_RESULT , 2 ) ;
RETURN TRIM ( V_RESULT ) ;
END ;
COMMENT ON PARAMETER SPECIFIC FUNCTION CISTOOLS.GET_CAMEL_CASE
( INSTRING IS 'In String' ) ;
LABEL ON SPECIFIC FUNCTION CISTOOLS.GET_CAMEL_CASE
IS 'Get Camel Case' ;
GRANT ALTER , EXECUTE
ON SPECIFIC FUNCTION CISTOOLS.GET_CAMEL_CASE
TO AMAPICS WITH GRANT OPTION ;
GRANT EXECUTE
ON SPECIFIC FUNCTION CISTOOLS.GET_CAMEL_CASE
TO PUBLIC ;