Author: Rick Silvers
Posted: Wed Mar 15, 2017 9:00 pm (GMT 5.5)
Posted: Wed Mar 15, 2017 9:00 pm (GMT 5.5)
Code: |
/* REXX */ /*-------------------------------------------------------------------*/ /* REXX */ /* (Restructured EXtended eXecutor language) */ /*-------------------------------------------------------------------*/ /* Program Name...: RemSpace */ /* Original Author.: Rick Silvers at rsilvers.com */ /* Original Date...: 03-15-2017 */ /* Program Purpose: READ in a fixed width pipe delimited Teradata */ /* report file and remove leading/trailing spaces */ /* and concat (SQZ) with pipe delimiter '|' so */ /* data can be loaded back into Teradata with */ /* TPT (Teradata Parallel Transporter) delimited */ /* load. */ /* */ /* ( */ /* VARCHAR PRIVATELOGNAME = 'XXXX_WORK_FILE_LOG', */ /* VARCHAR FILENAME = 'DD:DATAIN', */ /* VARCHAR INDICATORMODE='N', */ /* VARCHAR OPENMODE='READ', */ /* VARCHAR FORMAT='DELIMITED', */ /* VARCHAR TEXTDELIMITER = '|', */ /* VARCHAR ACCEPTEXCCESSCOLUMNS = 'Y' */ /* ); */ /*-------------------------------------------------------------------*/ /* Maintenance Log.: */ /*-------------------------------------------------------------------*/ /* MM-DD-CCYY Programmer Comment */ /* ---------- ---------- ------- */ /* 03-15-2017 R.Silvers Created Program */ /*-------------------------------------------------------------------*/ /*-------------------------------------------------------------------*/ /* Allocat Input/Output */ /*-------------------------------------------------------------------*/ "ALLOC F(IN) DS('USERID.FILEIN') REUSE SHR" "ALLOC F(OUT) DS('USERID.FILEOUT') REUSE SHR" /*-------------------------------------------------------------------*/ /* Read the fixed length delimited file into STEM */ /*-------------------------------------------------------------------*/ "EXECIO 0 DISKR IN (OPEN" "EXECIO * DISKR IN (STEM XX." "EXECIO 0 DISKR IN (FINIS" "FREE F(IN)" /*-------------------------------------------------------------------*/ /* Loop thr STEM */ /*-------------------------------------------------------------------*/ maxlines =xx.0 Do a = 1 to maxlines by 1 parse value xx.a with FIELD1, '|', FIELD2, '|', FIELD3, '|', FIELD4, '|', FIELD5, '|', FIELD6, '|', FIELD7, '|', FIELD8, '|', FIELD9, '|', FIELD10, '|', FIELD11, '|', FIELD12, '|', FIELD13, '|', FIELD14 /*-------------------------------------------------------------------*/ /* Strip leading/trailing spaces */ /*-------------------------------------------------------------------*/ FIELD1 =strip(FIELD1,b,' ') FIELD2 =strip(FIELD2,b,' ') FIELD3 =strip(FIELD3,b,' ') FIELD4 =strip(FIELD4,b,' ') FIELD5 =strip(FIELD5,b,' ') FIELD6 =strip(FIELD6,b,' ') FIELD7 =strip(FIELD7,b,' ') FIELD8 =strip(FIELD8,b,' ') FIELD9 =strip(FIELD9,b,' ') FIELD10 =strip(FIELD10,b,' ') FIELD11 =strip(FIELD11,b,' ') FIELD12 =strip(FIELD12,b,' ') FIELD13 =strip(FIELD13,b,' ') FIELD14 =strip(FIELD14,b,' ') /*-------------------------------------------------------------------*/ /* Concat with '|' and write to output */ /*-------------------------------------------------------------------*/ lin.1 =FIELD1||, '|'||, FIELD2||, '|'||, FIELD3||, '|'||, FIELD4||, '|'||, FIELD5||, '|'||, FIELD6||, '|'||, FIELD7||, '|'||, FIELD8||, '|'||, FIELD9||, '|'||, FIELD10||, '|'||, FIELD11||, '|'||, FIELD12||, '|'||, FIELD13||, '|'||, FIELD14 "EXECIO 1 DISKW OUT (STEM LIN." end /*-------------------------------------------------------------------*/ /* Close output and FREE and exit */ /*-------------------------------------------------------------------*/ "EXECIO 0 DISKW OUT (FINIS" "FREE F(OUT)" exit |