Quantcast
Channel: IBM Mainframe Computers Forums
Viewing all articles
Browse latest Browse all 8500

DFSORT/ICETOOL :: RE: SQZ pipe delimited file with 1 column varying length

$
0
0
Author: Rick Silvers
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


Viewing all articles
Browse latest Browse all 8500

Trending Articles