diff --git a/CISTOOLS/Functions/SPLIT_COLUMNS.sql b/CISTOOLS/Functions/SPLIT_COLUMNS.sql
index 5b704f4..5024f8d 100644
--- a/CISTOOLS/Functions/SPLIT_COLUMNS.sql
+++ b/CISTOOLS/Functions/SPLIT_COLUMNS.sql
@@ -1 +1,88 @@
-âÅã@×ÁãÈ@\ÓÉÂÓ@^@
%
%ÃÙÅÁãÅ@ÖÙ@ÙÅ×ÓÁÃÅ@ÆäÕÃãÉÖÕ@ÃÉâãÖÖÓâKâ×ÓÉãmÃÖÓäÔÕâ@M@
%âØÓâãÔã@åÁÙÃÈÁÙMóòððð]@]@
%ÙÅãäÙÕâ@ãÁÂÓÅ@M@
%ÃÖÓäÔÕm×ÖâÉãÉÖÕ@ÉÕãÅÇÅÙ@k@
%ÃÖÓäÔÕmåÁÓäÅ@åÁÙÃÈÁÙMõñò]@]@@@
%ÓÁÕÇäÁÇÅ@âØÓ@
%â×ÅÃÉÆÉÃ@ÃÉâãÖÖÓâKâ×ÓÉãmÃÖÓäÔÕâ@
%ÕÖã@ÄÅãÅÙÔÉÕÉâãÉÃ@
%ÙÅÁÄâ@âØÓ@ÄÁãÁ@
%ÃÁÓÓÅÄ@ÖÕ@ÕäÓÓ@ÉÕ×äã@
%ÕÖ@ÅçãÅÙÕÁÓ@ÁÃãÉÖÕ@
%ÃÖÕÃäÙÙÅÕã@ÁÃÃÅââ@ÙÅâÖÓäãÉÖÕ@ÄÅÆÁäÓã@
%âÅã@Ö×ãÉÖÕ@@ÁÓæÂÓÒ@~@\ÁÓÓÙÅÁÄ@k@
%ÁÓæÃ×èÄãÁ@~@\Ö×ãÉÔÉéÅ@k@
%ÃÖÔÔÉã@~@\ÕÖÕÅ@k@
%ÄÂÇåÉÅæ@~@\âÖäÙÃÅ@k@
%ÄÅÃÙÅâäÓã@~@Móñk@óñk@ðð]@k@
%ÄèÕÄÆãÃÖÓ@~@\ÕÖ@k@
%ÄèÕäâÙ×ÙÆ@~@\ÖæÕÅÙ@k@
%Ö×ãÓÖÂ@~@\èÅâ@k@
%âØÓÃäÙÙäÓÅ@~@\âãÄ@k@
%âÙãâÅØ@~@\ÈÅç@@@
%ÂÅÇÉÕ@
%ÄÅÃÓÁÙÅ@âãÔãÈÁÕÄÓÅ@ÂÉÇÉÕã@^@
%ÄÅÃÓÁÙÅ@ÄÅâÃÈÁÕÄÓÅ@åÁÙÃÈÁÙ@M@ñòø@]@^@
%ÄÅÃÓÁÙÅ@åÖÙÄÉÕÁÓ×Öâ@ÉÕãÅÇÅÙ@ÄÅÆÁäÓã@ð@^@
%ÄÅÃÓÁÙÅ@ÖåÅÙÓÁèâØÓ@åÁÙÃÈÁÙ@M@óòððð@]@ÄÅÆÁäÓã@}}@^@
%ÄÅÃÓÁÙÅ@åÃÖÓäÔÕÕÁÔÅ@åÁÙÃÈÁÙ@M@ñòø@]@ÄÅÆÁäÓã@}@}@^@
%ÄÅÃÓÁÙÅ@É@ÉÕãÅÇÅÙ@ÄÅÆÁäÓã@ñ@^@
%ÄÅÃÓÁÙÅ@ãÖÒÅÕ@åÁÙÃÈÁÙ@M@ñòø@]@ÄÅÆÁäÓã@}@}@^@
%ÄÅÃÓÁÙÅ@ÙãÕâØÓÃÖÄÅ@ÉÕã@^@
%ÄÅÃÓÁÙÅ@ÃÖÓÃÖäÕã@ÉÕãÅÇÅÙ@^@
%ÄÅÃÓÁÙÅ@ååÁÓäÅ@åÁÙÃÈÁÙ@M@õñò@]@ÄÅÆÁäÓã@}}@^@
%ÄÅÃÓÁÙÅ@âØÓÃÖÄÅ@ÉÕãÅÇÅÙ@ÄÅÆÁäÓã@ð@^@
%ÄÅÃÓÁÙÅ@âØÓâãÁãÅ@ÃÈÁÙ@M@õ@]@ÄÅÆÁäÓã@}ððððð}@^@
%ÄÅÃÓÁÙÅ@âãÔãÃäÙâÖÙ@ÃäÙâÖÙ@ÆÖÙ@âãÔãÈÁÕÄÓÅ@^@
%ÄÅÃÓÁÙÅ@ÃÖÕãÉÕäÅ@ÈÁÕÄÓÅÙ@ÆÖÙ@âØÓâãÁãÅ@}òòõðñ}@k@âØÓâãÁãÅ@}óóððð}@
%ÂÅÇÉÕ@
%ÄÅÁÓÓÖÃÁãÅ@ÄÅâÃÙÉ×ãÖÙ@ÓÖÃÁÓ@ÄÅâÃÈÁÕÄÓÅ@^@
%ÇÅã@ÄÉÁÇÕÖâãÉÃâ@ÃÖÕÄÉãÉÖÕ@ñ@ãÖÒÅÕ@~@ÄÂòmÖÙÄÉÕÁÓmãÖÒÅÕmò@^@
%âÅã@ÃÖÓÃÖäÕã@~@ãÖÒÅÕ@^@
%ÁÓÓÖÃÁãÅ@ÄÅâÃÙÉ×ãÖÙ@ÓÖÃÁÓ@ÄÅâÃÈÁÕÄÓÅ@æÉãÈ@ÔÁç@ÃÖÓÃÖäÕã@^@
%ÄÅâÃÙÉÂÅ@âãÔãÈÁÕÄÓÅ@äâÉÕÇ@ÄÅâÃÙÉ×ãÖÙ@ÓÖÃÁÓ@ÄÅâÃÈÁÕÄÓÅ@^@
%âÅã@É@~@ñ@^@
%ÅÕÄ@^@
%âÅã@ÄÅâÃÈÁÕÄÓÅ@~@}Ä…¢ƒ™}@OO@ÈÅç@M@ÇÅÕÅÙÁãÅmäÕÉØäÅ@M@]@]@^@
%×ÙÅ×ÁÙÅ@âãÔãÈÁÕÄÓÅ@ÆÙÖÔ@âØÓâãÔã@^@
%ÁÓÓÖÃÁãÅ@ÄÅâÃÙÉ×ãÖÙ@ÓÖÃÁÓ@ÄÅâÃÈÁÕÄÓÅ@æÉãÈ@ÔÁç@ñðòô@^@
%ÄÅâÃÙÉÂÅ@âãÔãÈÁÕÄÓÅ@äâÉÕÇ@ÄÅâÃÙÉ×ãÖÙ@ÓÖÃÁÓ@ÄÅâÃÈÁÕÄÓÅ@^@
%ÇÅã@ÄÅâÃÙÉ×ãÖÙ@ÓÖÃÁÓ@ÄÅâÃÈÁÕÄÓÅ@ÃÖÓÃÖäÕã@~@ÃÖäÕã@^@
%``‚¤‰“„@„¨•�”‰ƒ@¥�™ƒˆ�™@¢˜“@¢£�£…”…•£@
%âÅã@ÖåÅÙÓÁèâØÓ@~@M@
%âÅÓÅÃã@}â…“…ƒ£@}@OO@
%ÃÁâã@M@
%ÓÉâãÁÇÇ@M@}Ã�¢£@MÃ}@OO@ÙÕ@OO@}@Á¢@å�™ƒˆ�™Mõñò]@Ãƒ¢‰„@ó÷]}@k@
%}k@}@
%]@OO@}@Æ™–”@ã�‚“…Mâ…“…ƒ£@\@Æ™–”@ã�‚“…M}@OO@âØÓâãÔã@OO@}@]@çM}@
%OO@ÓÉâãÁÇÇ@M@}Ã}@OO@ÙÕ@k@}k@}@]@OO@}]]@}@Áâ@ÃÓÖÂ@M@ò@Ç@]@]@
%ÆÙÖÔ@ãÁÂÓÅ@M@
%ÃÉâãÖÖÓâ@K@ÙÖæâmÃÖäÕãÅÙ@M@ÃÖÓÃÖäÕã@]@
%]@]@^@
%ÄÅÁÓÓÖÃÁãÅ@ÄÅâÃÙÉ×ãÖÙ@ÓÖÃÁÓ@ÄÅâÃÈÁÕÄÓÅ@^@
%×ÙÅ×ÁÙÅ@âãÔãÈÁÕÄÓÅ@ÆÙÖÔ@ÖåÅÙÓÁèâØÓ@^@
%ÁÓÓÖÃÁãÅ@ÄÅâÃÙÉ×ãÖÙ@ÓÖÃÁÓ@ÄÅâÃÈÁÕÄÓÅ@æÉãÈ@ÔÁç@ÃÖÓÃÖäÕã@^@
%ÄÅâÃÙÉÂÅ@âãÔãÈÁÕÄÓÅ@äâÉÕÇ@ÄÅâÃÙÉ×ãÖÙ@ÓÖÃÁÓ@ÄÅâÃÈÁÕÄÓÅ@^@
%Ö×ÅÕ@âãÔãÃäÙâÖÙ@^@
%ÆÅãÃÈ@âãÔãÃäÙâÖÙ@
%ÉÕãÖ@âØÓ@ÄÅâÃÙÉ×ãÖÙ@ÓÖÃÁÓ@ÄÅâÃÈÁÕÄÓÅ@^@
%æÈÉÓÅ@É@L~@ÃÖÓÃÖäÕã@ÄÖ@
%ÇÅã@ÄÅâÃÙÉ×ãÖÙ@ÓÖÃÁÓ@ÄÅâÃÈÁÕÄÓÅ@åÁÓäÅ@É@ååÁÓäÅ@~@ÄÁãÁ@^@
%×É×Å@M@É@k@ååÁÓäÅ@]@^@
%âÅã@É@~@É@N@ñ@^@
%ÅÕÄ@æÈÉÓÅ@^@
%ÄÅÁÓÓÖÃÁãÅ@ÄÅâÃÙÉ×ãÖÙ@ÓÖÃÁÓ@ÄÅâÃÈÁÕÄÓÅ@^@
%ÃÓÖâÅ@âãÔãÃäÙâÖÙ@^@
%ÙÅãäÙÕ@^@
%ÅÕÄ@@^@
%
%ÇÙÁÕã@ÁÓãÅÙ@k@ÅçÅÃäãÅ@@@
%ÖÕ@â×ÅÃÉÆÉÃ@ÆäÕÃãÉÖÕ@ÃÉâãÖÖÓâKâ×ÓÉãmÃÖÓäÔÕâ@
%ãÖ@ÁÔÁ×ÉÃâ@æÉãÈ@ÇÙÁÕã@Ö×ãÉÖÕ@^@
%
%ÇÙÁÕã@ÅçÅÃäãÅ@@@
%ÖÕ@â×ÅÃÉÆÉÃ@ÆäÕ
\ No newline at end of file
+SET PATH *LIBL ; 
+
+CREATE OR REPLACE FUNCTION CISTOOLS.SPLIT_COLUMNS ( 
+	SQLSTMT VARCHAR(32000) ) 
+	RETURNS TABLE ( 
+	COLUMN_POSITION INTEGER , 
+	COLUMN_VALUE VARCHAR(512) )   
+	LANGUAGE SQL 
+	SPECIFIC CISTOOLS.SPLIT_COLUMNS 
+	NOT DETERMINISTIC 
+	READS SQL DATA 
+	CALLED ON NULL INPUT 
+	NO EXTERNAL ACTION 
+	CONCURRENT ACCESS RESOLUTION DEFAULT 
+	SET OPTION  ALWBLK = *ALLREAD , 
+	ALWCPYDTA = *OPTIMIZE , 
+	COMMIT = *NONE , 
+	DBGVIEW = *SOURCE , 
+	DECRESULT = (31, 31, 00) , 
+	DYNDFTCOL = *NO , 
+	DYNUSRPRF = *OWNER , 
+	OPTLOB = *YES , 
+	SQLCURRULE = *STD , 
+	SRTSEQ = *HEX   
+	BEGIN 
+DECLARE STMTHANDLE BIGINT ; 
+DECLARE DESCHANDLE VARCHAR ( 128 ) ; 
+DECLARE VORDINALPOS INTEGER DEFAULT 0 ; 
+DECLARE OVERLAYSQL VARCHAR ( 32000 ) DEFAULT '' ; 
+DECLARE VCOLUMNNAME VARCHAR ( 128 ) DEFAULT ' ' ; 
+DECLARE I INTEGER DEFAULT 1 ; 
+DECLARE TOKEN VARCHAR ( 128 ) DEFAULT ' ' ; 
+DECLARE RTNSQLCODE INT ; 
+DECLARE COLCOUNT INTEGER ; 
+DECLARE VVALUE VARCHAR ( 512 ) DEFAULT '' ; 
+DECLARE SQLCODE INTEGER DEFAULT 0 ; 
+DECLARE SQLSTATE CHAR ( 5 ) DEFAULT '00000' ; 
+DECLARE STMTCURSOR CURSOR FOR STMTHANDLE ; 
+DECLARE CONTINUE HANDLER FOR SQLSTATE '22501' , SQLSTATE '33000' 
+BEGIN 
+DEALLOCATE DESCRIPTOR LOCAL DESCHANDLE ; 
+GET DIAGNOSTICS CONDITION 1 TOKEN = DB2_ORDINAL_TOKEN_2 ; 
+SET COLCOUNT = TOKEN ; 
+ALLOCATE DESCRIPTOR LOCAL DESCHANDLE WITH MAX COLCOUNT ; 
+DESCRIBE STMTHANDLE USING DESCRIPTOR LOCAL DESCHANDLE ; 
+SET I = 1 ; 
+END ; 
+SET DESCHANDLE = 'Descr' || HEX ( GENERATE_UNIQUE ( ) ) ; 
+PREPARE STMTHANDLE FROM SQLSTMT ; 
+ALLOCATE DESCRIPTOR LOCAL DESCHANDLE WITH MAX 1024 ; 
+DESCRIBE STMTHANDLE USING DESCRIPTOR LOCAL DESCHANDLE ; 
+GET DESCRIPTOR LOCAL DESCHANDLE COLCOUNT = COUNT ; 
+--build dynamic varchar sql statement 
+SET OVERLAYSQL = ( 
+SELECT 'Select ' || 
+CAST ( 
+LISTAGG ( 'Cast (C' || RN || ' As Varchar(512) Ccsid 37)' , 
+', ' 
+) || ' From Table(Select * From Table(' || SQLSTMT || ' ) X(' 
+|| LISTAGG ( 'C' || RN , ', ' ) || ')) ' AS CLOB ( 2 G ) ) 
+FROM TABLE ( 
+CISTOOLS . ROWS_COUNTER ( COLCOUNT ) 
+) ) ; 
+DEALLOCATE DESCRIPTOR LOCAL DESCHANDLE ; 
+PREPARE STMTHANDLE FROM OVERLAYSQL ; 
+ALLOCATE DESCRIPTOR LOCAL DESCHANDLE WITH MAX COLCOUNT ; 
+DESCRIBE STMTHANDLE USING DESCRIPTOR LOCAL DESCHANDLE ; 
+OPEN STMTCURSOR ; 
+FETCH STMTCURSOR 
+INTO SQL DESCRIPTOR LOCAL DESCHANDLE ; 
+WHILE I <= COLCOUNT DO 
+GET DESCRIPTOR LOCAL DESCHANDLE VALUE I VVALUE = DATA ; 
+PIPE ( I , VVALUE ) ; 
+SET I = I + 1 ; 
+END WHILE ; 
+DEALLOCATE DESCRIPTOR LOCAL DESCHANDLE ; 
+CLOSE STMTCURSOR ; 
+RETURN ; 
+END  ; 
+
+GRANT ALTER , EXECUTE   
+ON SPECIFIC FUNCTION CISTOOLS.SPLIT_COLUMNS 
+TO AMAPICS WITH GRANT OPTION ; 
+
+GRANT EXECUTE   
+ON SPECIFIC FUNCTION CISTOOLS.SPLIT_COLUMNS 
+TO PUBLIC ; 
+
