业务场景:
1.通过交易将EXECL表中数据LOAD到主机中
遇到难题:
1.带符号位的数据录入时保持,SQLCODE=-804,显示出的数据为乱码
根本原因:
1.主机编码格式为EBCDIC,不是ASCII。
处理方法:
1.修改EXECL表中带符号位的数据。
总结:
1.通过交易将数据以FTP的方式传入主机,会生成数据文件,若数据为负数时,则末尾为小写英文字母(p,q,r,s,t,u,v,w,x,y,z)。
eg.
若主机中数据项为:
01 RTFW-RATE PIC S9(4)V9( 8) COMP-3.
将“3.14”写入EXECL并导入,OK
将“-3.14”写入EXECL并导入,ERROR。必须写成“-3.14000000”,则OK。该数据在主机中显示为00031400000p.(p表示0)
将“-3.14000002”写入EXECL并导入,OK。该数据在主机中显示为00031400000r.(r表示2)
将“-3.14000078”写入EXECL并导入,OK。该数据在主机中显示为00031400007x.(x表示8)
.......注意EXECL文档为ASCII编码格式:
这种问题时常发生,今天与遇到了一时半会还没想起来。。顺便整理了下COBOL的常见压缩类型复习复习。<