Как скопировать одно значение из набора данных в другой набор данных с помощью JCL - PullRequest
0 голосов
/ 09 апреля 2020

Мой вопрос: я хочу добавить одно значение из одного набора данных в другой набор данных.

Ниже приведен скриншот первого набора данных. enter image description here

Ниже приведен скриншот второго набора данных.

enter image description here

Я хочу значение 0 который присутствует на 50-й позиции, необходимо добавить во второй файл на 50-й позиции, так как я могу это сделать, используя JCL, используя шаг сортировки.

Это необходимо сделать с помощью шага в JCL, пожалуйста, помоги мне.

1 Ответ

0 голосов
/ 10 апреля 2020

Я бы посоветовал вам вставить порядковые номера в конце (позиция 81) в оба набора данных и выполнить ПРАВИЛЬНОЕ СОЕДИНЕНИЕ в DFSORT с порядковым номером в качестве ключа. Вот решение с использованием ICETOOL, которое выполняет все задачи за один шаг.

//XXXXXXA JOB 1,NOTIFY=&SYSUID              
//STEP01  EXEC PGM=ICETOOL                  
//INA     DD DSN=XXXXXX.PS.A,DISP=SHR       
//INB     DD DSN=XXXXXX.PS.B,DISP=SHR       
//JNA DD DSN=&&JNA,DISP=(,DELETE),          
//       SPACE=(CYL,(1,0),RLSE),            
//       DCB=(LRECL=82,RECFM=FB,BLKSIZE=0)  
//JNB DD DSN=&&JNB,DISP=(,DELETE),          
//       SPACE=(CYL,(1,0),RLSE),            
//       DCB=(LRECL=82,RECFM=FB,BLKSIZE=0)  
//OUT     DD DSN=XXXXXX.PS,OUT3,
//        DISP=(,CATLG,DELETE), 
//        SPACE=(CYL,(1,0),RLSE),
//        DCB=(LRECL=80,RECFM=FB,BLKSIZE=0)                       
//TOOLMSG DD SYSOUT=*                       
//DFSMSG  DD SYSOUT=*                       
//SYSOUT  DD SYSOUT=*                       
//TOOLIN  DD *                              
  SORT FROM(INA) TO(JNA) USING(CTL1)        
  SORT FROM(INB) TO(JNB) USING(CTL1)        
  SORT JKFROM TO(OUT) USING(CTL2)           
/*                                          
//CTL1CNTL DD *                             
  SORT FIELDS=COPY                          
  OUTREC BUILD=(1,80,81:SEQNUM,2,ZD)        
//CTL2CNTL DD *                             
  JOINKEYS F1=JNA,FIELDS=(81,2,A)           
  JOINKEYS F2=JNB,FIELDS=(81,2,A)           
  REFORMAT FIELDS=(F2:1,49,F1:50,1,F2:51,30)
  JOIN UNPAIRED,F2                          
  SORT FIELDS=COPY                            

Содержимое в наборе данных XXXXXX.PS.A:

 ----+----1----+----2----+----3----+----4----+----5----+----6----+----7--
 ***************************** Top of Data ******************************
                                                  7                      
 **************************** Bottom of Data **************************** 

Содержимое в наборе данных XXXXXX.PS.B:

 ----+----1----+----2----+----3----+----4----+----5----+----6----+----7--
 ***************************** Top of Data ******************************
 PUT 'LCDT.ORDER.ORDRAD' LCD_BI_ORDERINFO_&OYMD._00 _01.txt              
 quit                                                                    
 /*                                                                      
 **************************** Bottom of Data ****************************

И содержимое в окончательный набор выходных данных, XXXXXX.PS.OUT3:

 ----+----1----+----2----+----3----+----4----+----5----+----6----+----7--
 ***************************** Top of Data ******************************
 PUT 'LCDT.ORDER.ORDRAD' LCD_BI_ORDERINFO_&OYMD._07 _01.txt              
 quit                                                                    
 /*                                                                      
 **************************** Bottom of Data ****************************

Надеюсь, это поможет.

...