使用DFSORT将10位字符数据转换为DB2 BIGINT类型

时间:2016-04-02 17:07:30

标签: db2 mainframe dfsort

我想将包含数字数据的10位字符字段转换为8字节的二进制文件,以插入DB2 BIGINT字段。

INPUT
-------
1531245800ABC
1531457890DEF

OUTPUT
-------
<8 byte numeric data>ABC
<8 byte numeric data>DEF

加载卡

LOAD DATA                      
LOG NO                       
REPLACE                      
UNICODE  CCSID(01208,00000,00000)
SORTDEVT SYSDA               
SORTNUM 12                   
INTO TABLE                   
<TABLE-NAME>                
KEEPDICTIONARY               
(                               
QUOTEID   POSITION (1) 
BIGINT   
,                              
GEO                             
POSITION (     9  )  CHAR MIXED(3))      

1 个答案:

答案 0 :(得分:1)

使用DFSORT符号,让您和将来的用户更轻松:

//TOBIGINT EXEC PGM=SORT 
//SYMNAMES DD * 
INPUT-CHARACTER-NUMERIC,1,10,ZD 
INPUT-CHARACTER-REST,*,3,CH 
//SYMNOUT DD SYSOUT=*
//SYSOUT   DD SYSOUT=* 
//SORTOUT  DD SYSOUT=* 
//SYSIN    DD * 
  OPTION COPY 

  INREC BUILD=(INPUT-CHARACTER-NUMERIC,
                TO=BI, 
                LENGTH=8, 
               INPUT-CHARACTER-REST) 
//SORTIN   DD * 
1531245800ABC 
1531457890DEF 

或者传统的开始,长度,类型编码:

//TOBIGINT EXEC PGM=SORT 
//SYSOUT   DD SYSOUT=* 
//SORTOUT  DD SYSOUT=* 
//SYSIN    DD * 
  OPTION COPY 

  INREC BUILD=(1,10,ZD, 
                TO=BI, 
                LENGTH=8, 
                11,3) 
//SORTIN   DD * 
1531245800ABC 
1531457890DEF 

输出为X'000000005B44F4E8',然后是ABC和X'000000005B483162',然后是DEF。