Vsam 文件创建 -
//VSAMKSDS JOB CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1),PRTY=15,
// NOTIFY=&SYSUID
//STEP10 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
DEFINE CLUSTER( -
NAME(RAHUL.KSDS.FILE) -
INDEXED -
KEYS(05 1) -
RECSZ(35 35) -
FREESPACE(10 20) -
TRACKS(50 30) -
CISZ(8192) -
VOLUME(ZASYS1))
/*
Run Code Online (Sandbox Code Playgroud)
记录在文件中——
RBA Len 1<==5>..10....5...20....5...30....5..
0 35 12543rajjd jdhdjd 9876553
35 35 53221dfdffd jhsfhd 9778785
Run Code Online (Sandbox Code Playgroud)
出现错误 -
KSDSFL 打开状态 39
KSDSFL 关闭状态 42
我的 Cobol 程序:-
IDENTIFICATION DIVISION.
PROGRAM-ID. KSDSPROG.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT KSDSFL ASSIGN TO INFLDD
ORGANIZATION …Run Code Online (Sandbox Code Playgroud) 我对VSAM有一些困惑,因为我是新手.在我错的地方纠正我并解决问题.
集群包含控制区域,控制区域包含控制间隔.一个控制间隔包含一个数据集.现在,为了定义集群,我们提到了一个数据组件和索引组件.现在我们给出的这个数据组件名称创建了一个数据集,索引名称生成一个键.我的质询如下─
我试着找一个简单的代码但是却无法用一个简单的例子来解释.
我有一个文件,可能包含约300万条记录.在整个程序运行过程中,需要多次更新此文件的某些记录.如果我需要从此文件中提取特定记录,则以下哪项更有效:
我有点困惑.我知道当您启动VSAM文件时,指针被设置为特定记录,后续READ命令将读取该记录.
我们假设VSAM有记录:
100
200
300
400
500Run Code Online (Sandbox Code Playgroud)
当你写:
START filename
KEY IS GREATER THAN 400Run Code Online (Sandbox Code Playgroud)
它将指针放在500.但如果你说
START filename
KEY IS GREATER THAN 600Run Code Online (Sandbox Code Playgroud)
指针放在哪里?
是500还是错误.
另外,我的理解是START永远不会给文件结束(返回代码10).