查看上一个主题 :: 查看下一个主题
|
作者 |
信息 |
陀螺仪
活跃的成员
.jpg)
已加入:2009年7月31日 帖子:565 地点:班加罗尔
|
|
|
|
你好
我正在使用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 位置:瓷宝座
|
|
|
|
引用: |
并且,如果记录的任何实例缺少某些字段,则整个密钥不会写入输出文件 |
那么关键是整个记录,还是关键在某些位置? |
|
回到顶部 |
|
 |
迪克·谢勒
主持人荣誉

已加入:2006年11月23日 帖子:19245 位置:矩阵内部
|
|
|
|
还是真的没有任何规则。 。 。
您需要发布每种情况下发生的情况以及原因。
如果您不发布规则,则此主题需要锁定或完全删除。
d |
|
回到顶部 |
|
 |
陀螺仪
活跃的成员
.jpg)
已加入:2009年7月31日 帖子:565 地点:班加罗尔
|
|
|
|
嗨,迪克,
是的,整个密钥就是记录。在上述输入方案中...
键-
码: |
XXXXXXX TTTTTTTTTTTTT TTTTTTTT C5140097 |
被重复2次,因此将其写入输出记录。
情况2:-
码: |
XXXXXXX BBBBB BBBBB BBBBBBB C547 |
有7个实例。但是有些实例是空的
因此该记录已从输出文件中跳过。 |
|
回到顶部 |
|
 |
陀螺仪
活跃的成员
.jpg)
已加入:2009年7月31日 帖子:565 地点:班加罗尔
|
|
|
|
情况3:
码: |
C5475630047
C5475630047 |
都相同,但是所有位置都未填写到记录中,因此也从输出文件中将其跳过。输入文件中有3个字段
1.-> Pos 1 to 8
2-> Pos 9 to 33
3-> Pos 34 to 47.
如果需要更多信息,请告诉我。 |
|
回到顶部 |
|
 |
陀螺仪
活跃的成员
.jpg)
已加入:2009年7月31日 帖子:565 地点:班加罗尔
|
|
|
|
情况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 位置:@我的办公桌
|
|
|
|
陀螺仪,
是否会有整个空白记录?
您的第三个字段(位置34至47)是否总是有价值?
您的输入是否已在任何字段上排序?
输入RECFM / LRECL? |
|
回到顶部 |
|
 |
陀螺仪
活跃的成员
.jpg)
已加入:2009年7月31日 帖子:565 地点:班加罗尔
|
|
|
|
是的,文件从34到47进行排序。如输入...所示,第3个字段将始终具有值... RECFM = FB,输入LRECL = 47。 |
|
回到顶部 |
|
 |
比尔·伍德格
主持人荣誉
加入时间:2011年3月9日 帖子:7311 位置:矩阵内部
|
|
|
|
因此,对于空白字段,数据是从先前的非空白“继承”来的,但是由于假定数据是“有效的”,因此实际上可以忽略,即始终有一个完整的密钥作为a的第一个顺序,另一面是已知空白的字段是重复的,因此可以忽略。
但是,该文件不是这样的可能性怎么样?应该的,但是无效的。
如果对Arun的一个问题(完全空白)的答案是否定的,那么您将具有一个关键元素来进行匹配,继承非空白(仅用于匹配)并进行常规处理。任何“狡猾”的记录都将出现在输出中,但是出于真正的原因(文件塞满)。 |
|
回到顶部 |
|
 |
陀螺仪
活跃的成员
.jpg)
已加入:2009年7月31日 帖子:565 地点:班加罗尔
|
|
|
|
不,不会有完全空白的记录。 |
|
回到顶部 |
|
 |
阿伦·拉吉(Arun Raj)
主持人
已加入:2006年10月17日 帖子:2481 位置:@我的办公桌
|
|
|
|
我认为这是一种快速的方法,可以满足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 |
|
|
回到顶部 |
|
 |
陀螺仪
活跃的成员
.jpg)
已加入:2009年7月31日 帖子:565 地点:班加罗尔
|
|
|
|
谢谢Arun ...效果很好... |
|
回到顶部 |
|
 |
阿伦·拉吉(Arun Raj)
主持人
已加入:2006年10月17日 帖子:2481 位置:@我的办公桌
|
|
|
|
别客气  |
|
回到顶部 |
|
 |
|