如果我想将记录附加到现有文件中,我需要使用哪些DISP参数?将记录追加到现有文件
回答
DISP=MOD
这将附加到现有的数据集的顺序的末尾。如果指定的数据集不存在,它将被创建(在这种情况下DISP = MOD和DISP = NEW是等同的)
当心以下的:
多体积数据集
DISP=MOD
的行为因您是否指定 特定卷而异。如果您在DSNAME参数指定一个成员的名字,您应该查看该reference 的规则
分区数据集
, 成员名称不得存在。系统将读/写机制定位在数据集的末尾 处。如果成员名称已存在,系统将终止该作业。
如果不指定成员名称, 系统定位在数据集末尾的读/写机构。系统 不会自动进入目录。
将数据添加到一个PDS/PDSE的构件的端部是一个位一招。您通常必须 删除并用添加的新记录重写整个成员。
顺序数据集和COBOL OPEN动词
有一些 “相互作用” 在JCL和COBOL OPEN
动词给出的DISP
之间 。
如果您在JCL指定DISP=MOD
,COBOL程序会记录添加到一个连续数据集的 结束两个OPEN OUTPUT
和OPEN EXTEND
。
如果您在JCL中指定DISP=OLD
,则COBOL程序会将记录添加到OPEN EXTEND
的顺序数据集的 末端。如果打开的顺序数据集作为OPEN OUTPUT
, 数据集的原创内容被删除,你将有效 用一个空的数据集再次启动(就像你已经删除,并重新分配它)。
VSAM数据集
虚拟存储访问方法(VSAM)文件是鱼的一个完全不同的 水壶。VSAM数据集来,在各种组织:
- KSDS(主要测序数据集)
- ESDS(输入序列数据集)
- RRDS(相对记录数据集)
- LSD(线性空间数据套)
每个组织都有自己的特点和用法。
在COBOL程序可能引用它们之前,必须预先定义VSAM数据集。这通常是作为单独的 IDCAMS作业完成的。一旦 VSAM数据集已定义 ,它可以通过COBOL(或其他)程序访问它 。这个 reference提供了 在COBOL下操纵VSAM数据集的一个很好的概述。部分:Adding records to a VSAM dataset 涵盖了将记录从COBOL程序添加到VSAM数据集的细节。使用COBOL open语句的OPEN EXTEND
版本将记录添加到现有ESDS或KSDS VSAM数据集的末尾。注意 对于KSDS数据集,记录必须按照密钥的递增顺序添加。
用于将VSAM数据集连接到程序的JCL实际上非常简单,并且是 所述的here。 对于现有的VSAM数据集,使用DISP=MOD
与DISP=OLD
相同(使用任意一个 - 它不会产生 差异)。如果您未更新 数据集并且不想阻止其他程序进行并发访问,请使用DISP=SHR
。
- 1. 如何将新记录追加到jqGrid中的现有记录?
- 2. 如何追加到现有记录?
- 3. AVAudioRecorder/AVAudioPlayer - 追加记录到文件
- 4. MySQL - 将数据追加到现有字段/记录的建议?
- 5. 追加到现有的序列文件
- 6. 追加到现有的excel文件
- 7. SOLR Tika:将文件添加到现有记录(ExtractingRequestHandler)
- 8. 将文本追加到文本文件中的现有行
- 9. 如何将文本追加到现有的文本文件
- 10. 将文本追加到现有Gzip文件
- 11. 将文本追加到现有的UTF16LE文件
- 12. llblgen - 将子类型记录添加到现有分层记录
- 13. 如何将数据追加到现有的Dropbox文件?
- 14. 使XMLWriter将数据追加到现有文件
- 15. 将脚本追加到现有页面
- 16. 将流程追加到现有的TextFlow?
- 17. 将对象追加到现有对象
- 18. 追加对象现有文件
- 19. 将xml文档追加到现有的xml文档的底部
- 20. 将文本追加到文件(从目录列表中获取)
- 21. 将文本追加到PowerShell文件
- 22. 纯JavaScript将文本追加到文件
- 23. 如何将日期追加到文件名以进行日志记录
- 24. 追加字段到记录数组?
- 25. Firebase覆盖现有记录而不是追加它们
- 26. 如何将一行文本追加到离子2中的现有文件中?
- 27. 将文本追加到数据表中的现有行
- 28. 用Sed将文本追加到现有的第一行
- 29. 将文本追加到带有时间戳的文本文件
- 30. 如何将数据追加到文件?
嗨尼尔,感谢repy。如果我使用DISP = MOD,那么当我打开文件光标已经定位在最后一个记录时,它是否就像我一样? – Saisha 2010-07-13 05:14:06
@Manasi使用DISP = MOD打开顺序数据集将读/写机制放在数据集中的最后一条记录之后。您的程序发出的下一次写入会为数据集添加一条新记录(不会覆盖现有记录)。 DISP = MOD意味着您将写入数据集(而不是从中读取数据)。注意:术语“游标”通常与数据库操作相关联(例如,相对于多行SQL查询的游标位置)。对于数据集操作,我们通常引用数据集中的读/写位置。 – NealB 2010-07-13 14:10:22
谢谢Neal,如果我使用DISP = MOD,我必须在EXTEND模式下打开文件,对吧? 我可以在DISP = OLD中使用EXTEND吗? 如果我使用DISP = OLD来追加记录,那么我的数据集中的读/写位置是什么? – Saisha 2010-07-14 05:55:37