我可以比较大型机中Db2表和文件中的键吗



我有一个学生id作为db2表和文件中的主键,该表和文件由大型机中的各种记录组成。如果db2表和文件中的键都匹配,那么我必须将该记录移动到输出文件-1中。我该怎么做?

I第二个评论希望OP显示进度,询问具体的问题。至少共享输入/输出示例、失败的尝试、类型&问题的定义(JCL、编程、Db2…(。但也许这是一种不知道从哪里开始的情况——在大型机领域并不罕见。如果是这样的话,那么我来做一系列假设:(

Db2数据存在于表中。但是您可以将相关数据放入数据集中。使用Db2实用程序,如UNLOAD,示例DSNTEP*程序,DSNTIAUL,供应商工具,内部工具&程序等等。这将使它成为JCL:中的两步过程

{{jobcard}}                                                                   
//*                                                                           
//* Get relevant data from Db2 into a dataset                                 
//*                                                                           
//RUNTEP2 EXEC PGM=IKJEFT01,DYNAMNBR=20                                       
//STEPLIB  DD DISP=SHR,DSN={{DB2_HLQ}}.SDSNLOAD                               
//         DD DISP=SHR,DSN={{DB2_HLQ}}.RUNLIB.LOAD                            
//SYSTSPRT DD SYSOUT=*                                                        
//SYSTSIN  DD *                                                               
DSN SYSTEM({{DB2_SSID}})                                                     
RUN  PROGRAM(DSNTIAUL) PLAN(DSNTIAUL) PARMS('SQL,10') -                      
LIB('{{DB2_HLQ}}.RUNLIB.LOAD')                                          
//SYSPRINT DD SYSOUT=*                                                        
//SYSUDUMP DD SYSOUT=*                                                        
//SYSREC00 DD DSNAME=&&ROWS,DISP=(NEW,PASS),UNIT=SYSDA                        
//SYSPUNCH DD DUMMY                                                           
//SYSIN    DD *                                                               
Select EMPNO From {{SCHEMA}}.EMP                                             
Where  LASTNAME In ('HAAS', 'YOSHIMURA');                                  
/*                                                                            
//*                                                                           
//* In case of the sample EMP table, you should end up with 2 EMPNOs in       
//* SYSREC00:                                                                 
//*   000010      <- HAAS                                                     
//*   000170      <- YOSHIMURA                                                
//*                                                                           
//* Use DFSORT to perform a join.                                         
//*                                                                           
//SORT    EXEC PGM=SORT                                                       
//SYSOUT   DD SYSOUT=*                                                        
//SORTJNF1 DD *                                                               
000000 spam                          -                                        
000010 qualifying row 1/2            +                                        
000090 spam                          -                                        
000170 qualifying row 2/2            +                                        
000900 eggs                          -                                        
//SORTJNF2 DD DSNAME=&&ROWS,DISP=SHR                                          
//SORTOUT  DD SYSOUT=*                                                        
//SYSIN    DD *                                                               
* Control statements for JOINKEYS application                                 
JOINKEYS FILE=F1,FIELDS=(1,6,A)                                              
JOINKEYS FILE=F2,FIELDS=(1,6,A)                                              
REFORMAT FIELDS=(F1:1,70)                                                    
* Control statements for main task (joined records)                           
SORT FIELDS=COPY                                                             
/*

以下是您在SORTOUT:中获得的内容片段

********************************* TOP OF DATA ***
000010 qualifying row 1/2            +           
000170 qualifying row 2/2            +           
******************************** BOTTOM OF DATA *

或者,使用REXX、Java、Python、Node…在Mainframe上编写脚本,DFSORT出口。或者用您觉得最舒服的东西编写大型机脚本,它可以处理基本的数据库&FTP/SSH/HTTP(zOSMF(。比如说,你可以用Python在Jupyter中完成这一切;ibm_db_dbi。我不是建议你这么做,但是,假设这是一个普遍的";如何";问题——这也是其中一种方式。

脚本方法不必转到Db2->数据集->流程->数据集。将文件数据加载到Db2中。聚合,联接,。。。使用SQL,而不是排序、集合、交集或脚本中想要的任何东西。

最新更新