我需要在RRN(相对记录号)处理的PF中的特定位置(例如:20个中的3个)写一个新记录。 具体来说,它是一个多成员PF。
我该怎么做?
答案 0 :(得分:2)
以下是关于使用源代码管理(SCM)系统评论代码的有趣讨论。
答案 1 :(得分:1)
你不能。
您可以重写现有记录。但是在编写新记录时,数据库会决定它的放置位置。
如果您有一个包含5条记录的文件,请输入#1-5。你删除记录2& 3.您以后不能再次添加记录#3。
如果文件被定义为REUSEDLT(* NO),那么它就会结束。如果文件是REUSEDLT(* YES),则DB可以重用已删除的记录,或者可以将其添加到文件的末尾。
答案 2 :(得分:1)
源物理文件(PF-SRC)的默认描述[即由创建源物理文件(CRTSRCPF)命令创建的系统提供的定义具有行编号的源序列(SRCSEQ)字段,允许插入行十分之一和百分之一,作为SrcSeq的任何整数行号的偏移量。插入新的记录并在现有行号的值之间插入行号,可以使用重组物理文件成员(RGZPFM)重新排序这些行,并指定键控源逻辑文件(LF-SRC),已将SRCSEQ定义为物理源成员的密钥;即每个重组请求的密钥文件(KEYFILE)参数上的LF规范,可选地,源更新选项(SRCOPT)的值为* SRCSEQ,以实现所需的源序列编号(SRCSEQ)默认或明确指定重新组织请求。
可以通过执行[原子]:将原始源数据的副本复制到临时文件中来制作完整的效果,从而制作偏移行数记录的插入[即]现有记录之间的新SeqNbr]到临时副本中,在临时副本中更新到SrcDta以获取任何特定的旧SeqNbr值,清除原始源,然后将已更新的临时副本中的有序源数据复制到原始源成员中。实际上,按照@ user2338816模仿“任何源编辑器的方式”可以更改数据,同时还允许插入行。
答案 3 :(得分:0)
我看到你发布的另一个答案的评论:
我只是将RRN从最低记录中移除一个,然后添加新记录。
不确定这是否相关,但您可以将记录(通过RRN)复制到文件的末尾 - 您甚至可以更改它以便插入到另一个文件中? (如源历史文件)
INSERT INTO YOURFILE
SELECT * FROM YOURFILE WHERE RRN(YOURFILE) = 40
然后更新该记录相同的记录
UPDATE UCWSDTLS SET SRCDTA = 'Whatever' WHERE RRN(UCWSDTLS) = 40
希望这有点帮助