プロジェクト

全般

プロフィール

操作

DB2ロード処理(AsIs)

バッチ処理のDB2ロードは、DELETE・INSERTの処理となる。

バッチ処理でのDB2ロード処理 例

//*****************************************************************
//**           WORK DATA SET SCRATCH                             **
//*****************************************************************
//STEP0  EXEC  PGM=IEHPROGM
//SYSPRINT DD  SYSOUT=*
//DASD80   DD  DISP=SHR,UNIT=SYSDA,VOL=SER=DASD80
//SYSIN    DD  *
   SCRATCH     DSNAME=TEMP.DB2ECDL.DISCARD,VOL=SYSDA=DASD80,PURGE
/*
//*****************************************************************
//**           L O A D    M A E    S O R T                       **
//*****************************************************************
//******************************************************** ***
//*        DB2ロード スタート                      ***
//******************************************************** ***
//LOAD     EXEC DSNUPROC,PARM='DSNH,DAIMNT3J'
//SYSREC   DD  DSN=SEAD.ND53500J.WORK0010,DISP=SHR,
//          VOL=SER=DASD36,UNIT=SYSDA
//SYSDISC  DD  DSN=TEMP.DB2ECDL.DISCARD,
//          DISP=(NEW,KEEP,DELETE),SPACE=(CYL,(10,5),RLSE),
//          VOL=SER=DASD80,UNIT=SYSDA
//SORTWK01 DD  UNIT=SYSDA,SPACE=(40000,(2000,2000),,,ROUND)
//SORTWK02 DD  UNIT=SYSDA,SPACE=(40000,(2000,2000),,,ROUND)
//SORTWK03 DD  UNIT=SYSDA,SPACE=(40000,(2000,2000),,,ROUND)
//SORTWK04 DD  UNIT=SYSDA,SPACE=(40000,(2000,2000),,,ROUND)
//SORTOUT  DD  UNIT=SYSDA,SPACE=(40000,(2000,2000),,,ROUND)
//SYSUT1   DD  UNIT=SYSDA,SPACE=(40000,(500,500),,,ROUND)
//SYSERR   DD  UNIT=SYSDA,SPACE=(40000,(500,500),,,ROUND)
//SYSMAP   DD  UNIT=SYSDA,SPACE=(40000,(500,500),,,ROUND)
//SYSIN    DD  DSN=ADG.DB2TBL.SRC(RDECDLLD),DISP=SHR
//*
//DSNTIAS EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(9,LT)
//SYSTSPRT DD  SYSOUT=*
//SYSPRINT DD  SYSOUT=*
//SYSUDUMP DD  SYSOUT=*
//SYSTSIN  DD  *
  DSN SYSTEM(DSNH)
  -DIS DB(RECDLDB)
  -STA DB(RECDLDB) SPACENAM(RECDLTS) ACC(FORCE)
  -DIS DB(RECDLDB)
/*
//******************************************************** ***
//*               RUNSTATSU                  ***
//******************************************************** ***
//RUNST   EXEC DSNUPROC,PARM='DSNH,DAIMNT3J'
//DSNTRACE DD  SYSOUT=*
//SYSUT1   DD  UNIT=SYSDA,SPACE=(4000,(50,50),,,ROUND)
//SYSREC   DD  UNIT=SYSDA,SPACE=(4000,(200,200),,,ROUND)
//SYSIN    DD  *

 RUNSTATS TABLESPACE     RECDLDB.RECDLTS
 INDEX                             (ALL)
 REPORT                              YES
 UPDATE                              ALL

各項目

INSERTするデータ

//SYSREC   DD  DSN=SEAD.ND53500J.WORK0010,DISP=SHR,
//          VOL=SER=DASD36,UNIT=SYSDA

INSERTに失敗したデータが入るファイル

//SYSDISC  DD  DSN=TEMP.DB2ECDL.DISCARD,
//          DISP=(NEW,KEEP,DELETE),SPACE=(CYL,(10,5),RLSE),
//          VOL=SER=DASD80,UNIT=SYSDA

更新するテーブル名

//SYSIN    DD  DSN=ADG.DB2TBL.SRC(RDECDLLD),DISP=SHR

「RDECDLLD」の最後のLDを外し、「RDECDL」と判断する。

岡 義久 さんが4ヶ月前に更新 · 0件の履歴