按 ‘ Cobol ’ 分类归档

CICS 读取文件EIBRESP=22 EIBRESP2=11

EXEC CICS READ
          INTO(RECORD)
          FILE('MASTFILE')
          RIDFLD(ACCTNO)
END-EXEC

MASTFILE是一个变长的文件,所以读取文件的时候,总是报错,说长度不对。DEBUG之,发现Eibresp =22,Eibresp2=11,解决方法:
查看了网址

LENGTH(data-area)
specifies the length, as a halfword binary value, of the data area where the record is to be put. On completion of the READNEXT command, the LENGTH parameter contains the actual length of the record.

所以需要指定长度,LENGTH(FILE-LEN),且FILE-LEN定义为  PIC S9(4) COMP VALUE 99。

 

EXEC CICS READ
          INTO(RECORD)
          LENGTH(RECLEN)
          FILE('MASTFILE')
          RIDFLD(ACCTNO)
 END-EXEC

DFSORT统计某个Field总额

有时候需要写一个简单的JOB用于统计某个Field的数值总额。这时候就可以用DFSORT的SUM功能。

使用方法:

假如我们要统计的Field起始位置喂60,长度为5,类型为数字,对应的格式为ZD(Zoned Decimal),那么可以写成:

SUM FIELDS=(60,5,ZD)
猛击阅读全文

Sort,Merge以及Copy文件

Q: 何为DFSORT?

A: DFSORT是一款由IBM提供的免费程序。这款强大的软件能够帮你实现对文件的排序,合并以及拷贝和分析,并且能够生成不同的报表。

利用DFSORT工具,你可以累加数据。比如,我们有一个公司的员工数据,表中的数据有员工的名字,部分以及他们的薪水。

 

猛击阅读全文

新手入门之JCL SORT

DFSORT introduce
DFSORT是IBM的Date facility家族的一员,用来对数据集进行排序,拷贝和合并。DFSORT
有丰富的功能和控制语句,这里只针对常用功能作简单介绍。

作业控制语句:
JOB:          指定作业参数
EXEC:         指定作业步参数
SYSOUT DD:    定义输出信息的顺序数据集
SORTIN DD:    定义输入数据集
WORTWKdd DD:  定义一系列的排序工作数据集
SORTOUT DD:   定义排序完的数据的输出数据集
SYSIN DD:     定义控制信息

控制选项:
SORT:   指定对数据集进行排序操作
MERGE:  指定对数据集进行合并操作
COPY:   指定对数据集进行拷贝操作
FIELDS: 指定排序键值的信息,格式为
FIELDS=(起始位置,长度,升降序[,起始位置,长度,升降序]),FORMAT=数据类型
(起始位置,长度,数据格式,升降序[,起始位置,长度,数据格式,升降序])
其中位置和长度都是以字节为单位,顺序可选的有 A:升序,D:降序,E:适用用户出口例程序;
FORMAT=指定键字的类型,可选项有 CH:字符,PD:压缩十进制,BI:二进制,AC:ASCII码型

说明:
000012  SORT FIELDS=(1,7,CH,A) 从1位到第7位升序排列,降序是D
000013  OMIT COND=(11,1,CH,EQ,C’A',OR,11,1,CH,EQ,C’B')    OMIT忽略掉11位是’A'和’B'的记录
000014  OUTREC FIELDS=(1,9,C’ ‘,11,6,C’ END’) 重新组合新得输出数据,取1到9位,第10位替换为space,再取11位到16位,17位开始用’ END’替换 猛击阅读全文

Cics读取ESDS数据

首先需要注意的是ESDS中的数据是不能被删除的。

看官方的说法:

Direct reading from an ESDS

When reading from an ESDS, the individual record you want is identified by an RBA. Because the RBA of a record in an ESDS cannot change, your application program can keep track of the values of the RBAs corresponding to the records it wants to access. An RBA must always point to the beginning of a record. There is no equivalent to the GENERIC or GTEQ options that you can use to position approximately in a KSDS.

读取数据应该有两种方法,第一种是直接Read,另外一种就是先STARTBR以及READPREV或者READNEXT。 猛击阅读全文

CICS ONLINE入门操作

Vsam文件:
Vsam(virtual storage access method)文件是IBM在虚拟存储和树型数据结构基础上,为满足数据量大,存取速度快和维护起来方便而
发展起来的一种文件组织形式。VSAM以索引键(key)或相对字节地址(BRA)来安排纪录的存放位置,它支持直接访问和顺序访问两种方式。

VASM文件结构:
VSAM文件中的数据都以纪录的格式存放,逻辑纪录是访问数据的单位,VSAM文件将纪录存放一个个CI(Control Interval)中,一个CI是
DASD中一片连续的区域,用来存储数据纪录以及控制信息。当读取一个记录时,这个记录所在的CI将整个读到VSAM I/O缓冲区,然后用
户要读的纪录才从VSAM缓冲区传输到用户定义工作区。CI的大小在创建VSAM文件时由用户指定,也可以让系统自动选择合适的大小。
每个CI含有如下信息:
逻辑纪录:纪录用户数据,每个CI可以含有多个逻辑纪录
自由空间:每个CI可以有一定的自由空间,可以用来插入新的纪录
控制信息:主要是RDF和CIDF,RDF描述每一个记录的信息,而CIDF则描述整个CI的信息。

CICS支持以下三种VSAM文件:
KSDS(Key Sequenced Data Set)
ESDS(Entry Sequenced Data Set)
RRDS(Relative Record Data Set)

猛击阅读全文