IBM大型机论坛索引
 
登录
 
IBM大型机论坛索引 大型机:搜索 IBM Mainframe论坛:常见问题解答 寄存器
 

消除空白记录


IBM大型机论坛 -> JCL& VSAM
发表新话题   回复主题
查看上一个主题 :: 查看下一个主题  
作者 信息
陀螺仪

活跃的成员


已加入:2009年7月31日
帖子:565
地点:班加罗尔

发布发表:2011年7月8日,星期五7:37 pm
引用回复

你好
我正在使用SYNCSORT。
我试图写一个排序步骤,将执行以下操作。

输入
码:

---- + ---- 1 ---- + ---- 2--- + ---- 3--- + ---- 4 ---- +-
*****************************数据顶部*****
XXXXXXX TTTTTTTTTTTTT TTTTTTTT     C5140097     
XXXXXXX TTTTTTTTTTTTT TTTTTTTT     C5140097     
XXXXXXX QQ QQQ                   C51956       
XXXXXXX QQ QQQ                   C51956       
XXXXXXX QQ QQQ                   C51956       
XXXXXXX QQ QQQ                   C51956       
XXXXXXX BBBBB BBBBB BBBBBBB      C547         
XXXXXXX BBBBB BBBBB BBBBBBB      C547         
                                 C547         
XXXXXXX BBBBB BBBBB BBBBBBB      C547         
XXXXXXX BBBBB BBBBB BBBBBBB      C547         
                                 C547         
XXXXXXX BBBBB BBBBB BBBBBBB      C547         
                                 C5475630047   
                                 C5475630047   
XXXXXXX KKKKKKKKKK KKKK KKKK     C5999957     
XXXXXXX VVVV VVV VVVVVVVV-VVVV   C5999987     
XXXXXXX VVVV VVV VVVVVVVV-VVVV   C5999987     



输出值
码:

---- + ---- 1 ---- + ---- 2--- + ---- 3--- + ---- 4 ---- +-       
*****************************数据顶部*****
XXXXXXX TTTTTTTTTTTTT TTTTTTTT     C5140097     
XXXXXXX QQ QQQ                   C51956       
XXXXXXX KKKKKKKKKK KKKK KKKK     C5999957     
XXXXXXX VVVV VVV VVVVVVVV-VVVV   C5999987     


逻辑是将整个记录视为关键。
输出不应重复。
并且,如果记录的任何实例缺少某些字段,则整个键不会写入输出文件。像下面的记录一样,这些记录的某些实例中缺少某些字段,因此未写入输出。
码:


XXXXXXX BBBBB BBBBB BBBBBBB      C547
                                 C547
                                 C5475630047



你能帮我这个忙吗?
回到顶部
查看用户资料 发送私信
dbzTHEdinosauer

全球主持人


已加入:2006年10月20日
帖子:6967
位置:瓷宝座

发布发表:2011年7月8日,星期五8:08 pm
引用回复

引用:
逻辑是将整个记录视为关键。


引用:
并且,如果记录的任何实例缺少某些字段,则整个密钥不会写入输出文件


那么关键是整个记录,还是关键在某些位置?
回到顶部
查看用户资料 发送私信
迪克·谢勒

主持人荣誉


已加入:2006年11月23日
帖子:19245
位置:矩阵内部

发布发表:2011年7月8日,星期五9:10 pm
引用回复

还是真的没有任何规则。 。 。 icon_sad.gif

您需要发布每种情况下发生的情况以及原因。

如果您不发布规则,则此主题需要锁定或完全删除。

d
回到顶部
查看用户资料 发送私信
陀螺仪

活跃的成员


已加入:2009年7月31日
帖子:565
地点:班加罗尔

发布发表:2011年7月11日星期一11:49上午
引用回复

嗨,迪克,


是的,整个密钥就是记录。在上述输入方案中...

键-
码:
XXXXXXX TTTTTTTTTTTTT TTTTTTTT     C5140097
被重复2次,因此将其写入输出记录。

情况2:-
码:
XXXXXXX BBBBB BBBBB BBBBBBB      C547 
有7个实例。但是有些实例是空的
码:
                                 C547
因此该记录已从输出文件中跳过。
回到顶部
查看用户资料 发送私信
陀螺仪

活跃的成员


已加入:2009年7月31日
帖子:565
地点:班加罗尔

发布发表:2011年7月11日星期一11:52上午
引用回复

情况3:

码:
                                 C5475630047   
                                 C5475630047   
都相同,但是所有位置都未填写到记录中,因此也从输出文件中将其跳过。输入文件中有3个字段
1.-> Pos 1 to 8
2-> Pos 9 to 33
3-> Pos 34 to 47.

如果需要更多信息,请告诉我。
回到顶部
查看用户资料 发送私信
陀螺仪

活跃的成员


已加入:2009年7月31日
帖子:565
地点:班加罗尔

发布发表:2011年7月11日星期一11:53上午
引用回复

情况3:

码:
                                 C5475630047   
                                 C5475630047   
都相同,但是所有位置都未填写到记录中,因此也从输出文件中将其跳过。输入文件中有3个字段
1.-> Pos 1 to 8
2-> Pos 9 to 33
3-> Pos 34 to 47.

我希望现在已经清楚了。
回到顶部
查看用户资料 发送私信
阿伦·拉吉(Arun Raj)

主持人


已加入:2006年10月17日
帖子:2481
位置:@我的办公桌

发布发表:2011年7月11日星期一1:18 pm
引用回复

陀螺仪,

是否会有整个空白记录?
您的第三个字段(位置34至47)是否总是有价值?
您的输入是否已在任何字段上排序?
输入RECFM / LRECL?
回到顶部
查看用户资料 发送私信
陀螺仪

活跃的成员


已加入:2009年7月31日
帖子:565
地点:班加罗尔

发布发表:2011年7月11日星期一2:49 pm
引用回复

是的,文件从34到47进行排序。如输入...所示,第3个字段将始终具有值... RECFM = FB,输入LRECL = 47。
回到顶部
查看用户资料 发送私信
比尔·伍德格

主持人荣誉


加入时间:2011年3月9日
帖子:7311
位置:矩阵内部

发布发表:2011年7月11日星期一2:51 pm
引用回复

因此,对于空白字段,数据是从先前的非空白“继承”来的,但是由于假定数据是“有效的”,因此实际上可以忽略,即始终有一个完整的密钥作为a的第一个顺序,另一面是已知空白的字段是重复的,因此可以忽略。

但是,该文件不是这样的可能性怎么样?应该的,但是无效的。

如果对Arun的一个问题(完全空白)的答案是否定的,那么您将具有一个关键元素来进行匹配,继承非空白(仅用于匹配)并进行常规处理。任何“狡猾”的记录都将出现在输出中,但是出于真正的原因(文件塞满)。
回到顶部
查看用户资料 发送私信
陀螺仪

活跃的成员


已加入:2009年7月31日
帖子:565
地点:班加罗尔

发布发表:2011年7月11日星期一5:35 pm
引用回复

不,不会有完全空白的记录。
回到顶部
查看用户资料 发送私信
阿伦·拉吉(Arun Raj)

主持人


已加入:2006年10月17日
帖子:2481
位置:@我的办公桌

发布发表:2011年7月11日星期一8:48 pm
引用回复

我认为这是一种快速的方法,可以满足OP的要求。如果可以进行微调,我明天再看。
码:
// SYSIN    DD  *                                                     
  INREC IFTHEN =(WHEN=INIT,OVERLAY=(81:SEQNUM,8,ZD,RESTART=(34,14))),
        IFTHEN =(WHEN=GROUP,BEGIN=(81,8,ZD,EQ,1),PUSH=(89:ID=8)),     
        IFTHEN =(WHEN=(1,8,CH,EQ,C''或,9,25,CH,EQ,C''),           
                OVERLAY=(81:C'00000000'))                           
  SORT FIELDS=(89,8,CH,A,81,8,CH,A)                                 
  OUTREC IFTHEN =(WHEN=INIT,OVERLAY=(97:SEQNUM,8,ZD,RESTART=(34,14))),
         IFTHEN=(WHEN=GROUP,BEGIN=(97,8,ZD,EQ,1),PUSH=(89:81,8)),   
         IFTHEN=(WHEN=(89,8,ZD,NE,0),                               
                OVERLAY=(105:SEQNUM,8,ZD,RESTART=(1,47)))           
  OUTFIL BUILD=(1,47),INCLUDE=(105,8,ZD,EQ,1)     
整理
码:
XXXXXXX TTTTTTTTTTTTT TTTTTTTT     C5140097
XXXXXXX QQ QQQ                   C51956 
XXXXXXX KKKKKKKKKK KKKK KKKK     C5999957
XXXXXXX VVVV VVV VVVVVVVV-VVVV   C5999987
回到顶部
查看用户资料 发送私信
陀螺仪

活跃的成员


已加入:2009年7月31日
帖子:565
地点:班加罗尔

发布发表:2011年7月12日,星期二,上午11:10
引用回复

谢谢Arun ...效果很好...
回到顶部
查看用户资料 发送私信
阿伦·拉吉(Arun Raj)

主持人


已加入:2006年10月17日
帖子:2481
位置:@我的办公桌

发布发表:2011年7月12日,星期二,下午4:54
引用回复

别客气 icon_smile.gif
回到顶部
查看用户资料 发送私信
查看上一个主题 :: :: 查看下一个主题  
发表新话题   回复主题 查看书签
所有时间均为格林尼治标准时间+ 6小时
论坛索引 -> JCL& VSAM

 


类似主题
话题 论坛 回覆
没有新帖 选择多个常量记录 DB2 2
该主题已锁定:您无法编辑帖子或回复。 将匹配的记录写入输出文件 DFSORT / ICETOOL 11
没有新帖 合并两个以上的记录 DFSORT / ICETOOL 15
没有新帖 匹配和不匹配记录使用 DFSORT / ICETOOL 11
没有新帖 删除基于S ...的重复记录 DFSORT / ICETOOL 4
搜索我们的论坛:


回到顶部