我正在尝试将文件加载到DB2表中并出现以下错误:
输入字段中的输入字段'UPDATE_ID'并不完全在记录中
加载卡看起来像:
加载步骤如下:
//LD001 EXEC DSNUPROC,SYSTEM=&DB2,UID=.CV156LDCLNT,
// UTPROC='',COND=(8,LT)
//**********************************************************************
//SORTOUT DD DSN=XXXX.CLNT.LD.SRTOUT,
// UNIT=SYSDA,
// DISP=(NEW,CATLG,CATLG),
// SPACE=(CYL,(600,600),RLSE)
//SYSDISC DD SYSOUT=*
//SYSERR DD DSN=XXXX.CLNT.LD.ERR,
// UNIT=SYSDA,
// DISP=(NEW,CATLG,CATLG),
// SPACE=(CYL,(600,600),RLSE)
//SYSIN DD DISP=SHR,DSN=XXXX.CARDLIB(LOADCLNT)-----> LOAD CONTROL CARD ALREADY SHOWN ABOVE
//SYSMAP DD DSN=XXXX.CLNT.LD.MAP,
// UNIT=SYSDA,
// DISP=(NEW,CATLG,CATLG),
// SPACE=(CYL,(600,600),RLSE)
//SYSREC01 DD DSN=XXXX.CLNT.D191014,
// DISP=SHR
//SYSUT1 DD DSN=XXXX.CLNT.LD.UT1,
// UNIT=SYSDA,
// DISP=(NEW,CATLG,CATLG),
// SPACE=(CYL,(60,60),RLSE)
//**********************************************************************
//LD001A EXEC PGM=FATAL,COND=(5,GT,LD001.DSNUPROC)
任何人都可以建议出什么问题了。
在此示例中,您有两个相同的列CREATE_ID和UPDATE_ID都为CHAR(10),但是CREATE_ID位于数据集的中间,并且当您读取输入文件时,您最终得到“ CONVERT”值,带有3个空格。总共10个符号。
当您读取UPDATE_ID时,最终会获得总共7个符号的“ CONVERT”值,因此加载过程失败。如果要使用CHAR(10),则必须提供10个符号长度的输入。
由于您使用的是RECFM = VB(虚拟块)数据集,因此会动态设置每个记录的(LRECL)长度。您的记录长度设置为115。
您在这里没有什么选择: