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

如何在Joinkeys中指定十六进制键?


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

新的用户


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

发布发表:2009年7月10日,星期五,下午1:25
引用回复

嗨,我们有两个VB文件(包括RDW的长度为496)。现在,我必须基于一个密钥隔离输入文件。如果此密钥存在于第二个文件中,则必须将该记录写入匹配文件(输出文件1)。如果没有,那么我必须将file1记录写入UNMATCH文件(输出file2)。此处的密钥为十六进制格式。

谢谢,
斯雷尼瓦斯
回到顶部
查看用户资料 发送私信
阿伦·拉吉(Arun Raj)

主持人


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

发布发表:2009年7月10日,星期五6:28 pm
引用回复

斯雷尼瓦斯

欢迎来到论坛。

密钥的格式无关紧要,您只需在提供的JOINKEYS语句中的两个文件中提及密钥字段的起始位置和长度即可 这两个文件中的关键字段具有相同的格式和长度.
码:
JOINKEYS FILE = F1,FIELDS =(p1,l1,A)
JOINKEYS FILE = F2,FIELDS =(p2,l2,A)
回到顶部
查看用户资料 发送私信
to_sreeni

新的用户


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

发布发表:2009年7月10日,星期五6:47 pm
引用回复

你好

感谢您及时的回复。请找到我正在使用的以下代码。十六进制数字在9-11的位置。如果我在键中排除了六边形,则说明给出了正确的结果。否则,将给出错误的结果。请帮忙。
码:
// SORT1 EXEC PGM = SORT                                       
// SORTJNF1 DD DISP = SHR,DSN = MSP1116.S.M0W109.ASRTCPY.TEST1   
// SORTJNF2 DD DISP = SHR,DSN = MSP1116.S.M0W109.ASRTCPY.TEST2   
// SORTOF01 DD DSN = MSP1116.MATCHED.RECORDS.FILE1,             
//            DISP=(OLD,CATLG),                             
//            UNIT=SYSDA,SPACE=(TRK,(20,10),RLSE),           
//           DCB = MSP1116.S.M0W109.ASRTCPY.TEST1             
// SORTOF02 DD DSN = MSP1116.UNMAT.RECORDS.FILE1,               
//            DISP=(OLD,CATLG),                             
//            UNIT=SYSDA,SPACE=(TRK,(20,10),RLSE),           
//           DCB = MSP1116.S.M0W109.ASRTCPY.TEST1             
// SYSOUT DD SYSOUT = *                                         
// SYSIN    DD    *                                           
 JOINKEYS FILES = F1,FIELDS =(8,1,A,9,3,A,20,5,A)                   
 JOINKEYS FILES = F2,FIELDS =(8,1,A,9,3,A,20,5,A)                   
  REFORMAT FIELDS=(F1:1,496,F2:1,496),FILL=X'FF'             
  JOIN UNPAIRED,F1                                           
  SORT FIELDS=COPY                                           
 OUTFIL FILES = 01,INCLUDE =(501,1,BI,NE,X'FF'),               
                  OUTREC =(5,492),FTOV,VLTRIM=X'FF'           
 OUTFIL FILES = 02,SAVE,OUTREC =(5,492),FTOV,VLTRIM=X'FF'


编辑: 请用 BB码 当您发布一些代码/错误时,这很容易阅读,谢谢... 阿努吉
回到顶部
查看用户资料 发送私信
阿伦·拉吉(Arun Raj)

主持人


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

发布发表:2009年7月10日,星期五,下午7:53
引用回复

引用:
如果我在键中排除了六边形,则说明给出了正确的结果。否则,将给出错误的结果。请帮忙
您需要显示输入记录的样本,期望值以及当前获得的输出。
回到顶部
查看用户资料 发送私信
迪克·谢勒

主持人荣誉


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

发布发表:2009年7月11日,星期六12:03上午
引用回复

您好,

只是一个猜测,但是在数值上可能存在具有不同符号的相等值。 。 。

按照阿伦的要求,
引用:
您需要显示输入记录的样本,期望值以及当前获得的输出。
回到顶部
查看用户资料 发送私信
to_sreeni

新的用户


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

发布发表:2009年7月13日星期一10:44 am
引用回复

你好

file1中的输入记录是
码:
 é.P.ù.......JìC1A35 .. * ...á... TOM .... C ......... D .........   
 é.P.ù.......JìC1A36 .. * ...ß... TOM .................................   
 é.P.ù.......JìC1A37 .. * ...ß... TOM ..................   
 é.P.ù.......JìE1A05.... * ..&.... TOM .....厨房* MRS           
 îxP..õ......JìC1A56 .. * ....... TOM .....Õø........²-.......   


file2中的输入记录是
码:
 é.P.ù.......JìE1A05.... * ..&.... TOM .....厨房* MRS     


我期望的输出
匹配文件(MSP1116.MATCHED.RECORDS.FILE1)
码:
 é.P.ù.......JìE1A05.... * ..&.... TOM .....厨房* MRS   


文件1(MSP1116.UNMAT.RECORDS.FILE1)的记录不匹配
码:
 é.P.ù.......JìC1A35 .. * ...á... TOM .... C ......... D .........   
 é.P.ù.......JìC1A36 .. * ...ß... TOM .................................   
 é.P.ù.......JìC1A37 .. * ...ß... TOM ..................   
 îxP..õ......JìC1A56 .. * ....... TOM .....Õø........²-.......   



有人可以帮忙吗?


温暖的问候,
斯雷尼瓦斯
回到顶部
查看用户资料 发送私信
迪克·谢勒

主持人荣誉


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

发布发表:2009年7月13日星期一8:10 pm
引用回复

您好,

您需要使用“ HEX ON”重新发布数据,并使用“ Code”标签(这将保留对齐)。

当我们可以更好地查看您的数据时,我们将能够提供更好的建议。
回到顶部
查看用户资料 发送私信
迪克·谢勒

主持人荣誉


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

发布发表:2009年7月13日星期一8:13 pm
引用回复

您好,

我已经“编码”了您的数据,但是我们仍然需要十六进制显示。 。 。
回到顶部
查看用户资料 发送私信
to_sreeni

新的用户


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

发布发表:2009年7月14日,星期二,上午10:57
引用回复

你好
file1中的输入记录是

码:
 é.P.ù.......JìC1A35 .. * ...á... TOM .... C ......... D .........
450D0D2000000D5CFCFF440151034000EDD0000C000000000C000000000
01176D600000018311350097C1305000364000030000000004000000000
 -------------------------------------------------- ---------
 é.P.ù.......JìC1A36 .. * ...ß... TOM .................................
450D0D2000000D5CFCFF440151035000EDD000000000000000100000000
01176D600000018311360097C1309000364000000000000003560000000
 -------------------------------------------------- ---------
 é.P.ù.......JìC1A37 .. * ...ß... TOM ..................
450D0D2000000D5CFCFF440151035000EDD0000000000000005C0000000
01176D600000018311370097C1309000364000000000000007BDC000000
 -------------------------------------------------- ---------
 é.P.ù.......JìE1A05.... * ..&.... TOM .....厨房* MRS         
450D0D2000000D5CFCFF000151051000EDD00000DCECCCD5DDE         
01176D600000018511050097C13030003640000B2933855C492         
 -------------------------------------------------- ---------
 îxP..õ......JìC1A56 .. * ....... TOM .....Õø........²-.......
45AD02C000000D5CFCFF440151011000EDD00000E700000000E60000000
067779F00000018311560097C150700036400000F000000000A00000000



file2中的输入记录是

码:
 é.P.ù.......JìE1A05.... * ..&.... TOM .....厨房* MRS
450D0D2000000D5CFCFF000151051000EDD00000DCECCCD5DDE
01176D700000018511050097C13030003640000B2933855C492


请帮我。
回到顶部
查看用户资料 发送私信
迪克·谢勒

主持人荣誉


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

发布发表:2009年7月14日,星期二,7:39 pm
引用回复

您好,

5字节字段中的值不匹配。 。 。

建议您检查创建这些文件的过程,并确定该字段的前2个字节应为x'40'还是x'00'。
回到顶部
查看用户资料 发送私信
艾丽莎·玛格丽丝(Alissa Margulies)

同步排序支持


已加入:2007年7月25日
帖子:496
地点:美国

发布发表:2009年7月15日,星期三,上​​午12:31
引用回复

迪克

我认为您忘记考虑4字节RDW。显示的样本数据的第一个字节实际上是位置5。因此,(20,5)是第一条记录中的C1A35。

斯雷尼瓦斯
引用:
如果此密钥存在于第二个文件中,我必须写该记录

如果您想将来自File2的匹配记录写入第一个OUTFIL,则按如下所示修改代码:
码:
OUTFIL FILES = 01,INCLUDE =(501,1,BI,NE,X'FF'),               
       OUTREC=(501,492),FTOV,VLTRIM=X'FF'   


如果这不是您的意思,请更加具体,并向我们展示您在输出中得到了什么。
回到顶部
查看用户资料 发送私信
迪克·谢勒

主持人荣誉


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

发布发表:2009年7月15日星期三凌晨1点03分
引用回复

嗨艾丽莎,

引用:
我认为您忘记了4字节RDW
是的-没忘记-由于领先的x'40'而故意忽略了它。同样是因为x'1D7'= 471并且原始的“ spec”是“496长(包括RDW)”。

我的猜测者表现不佳 icon_wink.gif

我没有看代码,也许应该看。 。 。icon_redface.gif
回到顶部
查看用户资料 发送私信
to_sreeni

新的用户


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

发布发表:2009年7月15日,星期三,上​​午11:36
引用回复

嗨艾丽莎,

我希望将文件1的匹配记录写入匹配文件。
当我指定单键(20,5,A)时,此逻辑有效。
另外,当我指定两个键(8,1,A)和(20,5,A)时

但是当我指定三个键(8,1,A),(9,3,A)和(20,5,A)时,它给出了空的MATCH文件。

原因是,键(9,3,A)-此处的格式为十六进制值(在最后一个半字节中指定符号的位置,它不是压缩十进制)。

PS:9,3给出数字(记录中为十六进制格式)。它永远不会有负面价值。

请帮我。

谢谢,
斯雷尼瓦斯
回到顶部
查看用户资料 发送私信
to_sreeni

新的用户


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

发布发表:2009年7月15日,星期三,晚上7:30
引用回复

嗨艾丽莎

你能帮我么?

非常感激你的帮助。

谢谢,
斯雷尼瓦斯
回到顶部
查看用户资料 发送私信
艾丽莎·玛格丽丝(Alissa Margulies)

同步排序支持


已加入:2007年7月25日
帖子:496
地点:美国

发布发表:2009年7月15日,星期三,下午7:55
引用回复

为了在匹配处理期间进行比较,将所有JOINKEYS字段都视为二进制格式。

对于您提供的示例数据,(9,3)不匹配,因此我不希望输出中有任何匹配的记录。在文件1中,值为X'06DD26',而在文件2中为X'06DD27'。他们根本不匹配。如果这不是您在关键字段中期望的数据,那么我建议您验证偏移量。
回到顶部
查看用户资料 发送私信
to_sreeni

新的用户


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

发布发表:2009年7月17日,星期五,下午6:33
引用回复

嗨Alissa,

现在正在工作。非常感谢你的帮助。

非常感激你的帮助。

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

 


类似主题
话题 论坛 回覆
没有新帖 我们如何在ICETOOL中模拟JOINKEYS DFSORT / ICETOOL 9
没有新帖 如何覆盖压缩的十进制值... DFSORT / ICETOOL 5
没有新帖 JOINKEYS匹配两个输入文件... DFSORT / ICETOOL 3
没有新帖 将数字转换为压缩十进制 DFSORT / ICETOOL 9
没有新帖 将压缩的十进制值转换为zon ... DB2 6
搜索我们的论坛:


回到顶部