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

将所有这些ps内容获取到一个ps并在同一行中


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

新的用户


已加入:2006年11月16日
帖子:10

发布发表:2006年11月23日,星期四,下午12:45
引用回复

嗨,我有5 ps的content,这些ps的每个ps都有不同查询的输出,即count *值。现在我想将所有这些ps内容放入一个ps并在同一行中...任何人都可以给解决方案请...
回到顶部
查看用户资料 发送私信
ofer71

全球主持人


已加入:2005年12月27日
帖子:2359
地点:以色列

发布发表:2006年11月23日,星期四,下午3:12
引用回复

您可以使用IEBGENER。

回到顶部
查看用户资料 发送私信
surya_pathaus

活跃用户


已加入:2006年8月28日
职位:110

发布发表:2006年11月23日,星期四,下午3:29
引用回复

你好

找到此第四部分中已讨论的链接。

http://stopbadbreath.net/viewtopic.php?t=14793
回到顶部
查看用户资料 发送私信
fuadk84

新的用户


已加入:2006年11月16日
帖子:10

发布发表:2006年11月23日,星期四,下午4:56
引用回复

ofer71写道:
您可以使用IEBGENER。


您可以告诉我如何使用IEBGENER吗?

这是我的问题(我不能使用icetool)

....例...

我想按记录横向合并两个文件。例如:
如果FILE1包含:
56789
BBBBBBB
中华总商会

FILE2包含:
11111
22222
33333
那么我的输出文件应包含:
5678911111
BBBBBBB22222
中华总商会33333


请帮助我。
回到顶部
查看用户资料 发送私信
fuadk84

新的用户


已加入:2006年11月16日
帖子:10

发布发表:2006年11月23日,星期四,下午4:58
引用回复

surya_pathaus写道:
你好

找到此第四部分中已讨论的链接。

http://stopbadbreath.net/viewtopic.php?t=14793


嗨..无法使用ICETOOL ...还有其他方法....
回到顶部
查看用户资料 发送私信
fuadk84

新的用户


已加入:2006年11月16日
帖子:10

发布发表:2006年11月23日,星期四,下午5:00
引用回复

fuadk84写道:
嗨,我有5 ps的content,这些ps的每个ps都有不同查询的输出,即count *值。现在我想将所有这些ps内容放入一个ps并在同一行中...任何人都可以给解决方案请...


这是我的问题(我不能使用icetool)

....例...

我想按记录横向合并两个文件。例如:
如果FILE1包含:
56789
BBBBBBB
中华总商会

FILE2包含:
11111
22222
33333
那么我的输出文件应包含:
5678911111
BBBBBBB22222
中华总商会33333


请帮助我...
回到顶部
查看用户资料 发送私信
ofer71

全球主持人


已加入:2005年12月27日
帖子:2359
地点:以色列

发布发表:2006年11月23日,星期四,下午5:20
引用回复

IEBGENER是标准的MVS实用程序。您可以在 精美手册.

回到顶部
查看用户资料 发送私信
弗兰克·雅格

DFSORT开发人员


已加入:2005年2月15日
帖子:7129
地点:加利福尼亚州圣何塞

发布发表:2006年11月23日,星期四,9:42 pm
引用回复

ofer71写道
引用:
IEBGENER是标准的MVS实用程序。您可以在精美的手册中阅读有关它的更多信息。


并且它在精美手册的确切位置上显示了如何执行fuadk84要执行的“联接”?请向我们展示IEBGENER的工作(我很好奇IEBGENER 能够 实际做到)。
回到顶部
查看用户资料 发送私信
ofer71

全球主持人


已加入:2005年12月27日
帖子:2359
地点:以色列

发布发表:2006年11月24日星期五上午12:52
引用回复

我相信在SYSUT1中合并数据集将导致一个SYSUT2。

回到顶部
查看用户资料 发送私信
弗兰克·雅格

DFSORT开发人员


已加入:2005年2月15日
帖子:7129
地点:加利福尼亚州圣何塞

发布发表:2006年11月24日星期五凌晨1:41
引用回复

引用:
我相信在SYSUT1中合并数据集将导致一个SYSUT2。


您需要仔细阅读fuadk84的描述。您可以使用IEBGENER并置file1和file2以获得以下输出:


56789
BBBBBBB
中华总商会
11111
22222
33333

但是fuadk84想要输出的是这样的:

5678911111
BBBBBBB22222
中华总商会33333

这是file1中的字段与file2中的字段的“连接”。 DFSORT的ICETOOL的SPLICE运算符可以做到这一点,但据我所知,IEBGENER无法做到。

由于某种原因,fuadk84说不能使用ICETOOL。不知道为什么。
回到顶部
查看用户资料 发送私信
威廉·汤普森

全球主持人


已加入:2006年11月18日
帖子:3156
所在地:亚利桑那州图森

发布发表:2006年11月24日星期五凌晨2:01
引用回复

我暂时停留在Syncsort上,但我记得它可以将两个记录中的数据连接起来,如果没有很好的手册,我不确定。我只能假设DFSort可以做到吗?

嘿,弗兰克,上班迟到了吗?什么时候是“晚餐”……咧嘴.....

土耳其快乐的一天,

法案
回到顶部
查看用户资料 发送私信
弗兰克·雅格

DFSORT开发人员


已加入:2005年2月15日
帖子:7129
地点:加利福尼亚州圣何塞

发布发表:2006年11月24日星期五凌晨2:51
引用回复

是的,DFSORT可以使用SPLICE做到这一点。

实际上,这里(西海岸)只有1:20 pm。晚餐已经有一段时间了(我的妻子只是把土耳其放在烤箱里……好吃)。 icon_biggrin.gif

也祝您感恩节快乐。
回到顶部
查看用户资料 发送私信
fuadk84

新的用户


已加入:2006年11月16日
帖子:10

发布发表:2006年11月24日,星期五2:48 pm
引用回复

fuadk84写道:
嗨,我有5 ps的content,这些ps的每个ps都有不同查询的输出,即count *值。现在我想将所有这些ps内容放入一个ps并在同一行中...任何人都可以给解决方案请...


谢谢...我可以在这里使用icetool .....部分获取输出..
请在下面的jcl中找到相同的问题



// S1 EXEC PGM = ICETOOL
// SYSPRINT DD SYSOUT = *
// TOOLMSG DD SYSOUT = *
// DFSMSG DD SYSOUT = *
// IN1 DD DSN = TNL.MKC.PS1,DISP = SHR
// IN2 DD DSN = TNL.MKC.PS2,DISP = SHR
// TMP1 DD DSN = TNL.MKC.TMP,DISP =(MOD,DELETE),
// SPACE =(TRK,(5,5)),UNIT = SYSDA,LRECL = 80
//输出DD DSN = TNL.MKC.PS,DISP = SHR
// TOOLIN DD *
使用(CTL1)从(IN1)复制到(TMP1)
使用(CTL2)从(IN2)复制到(TMP1)
使用(CTL3)从(TMP1)到(OUT)开(11,8,PD)和(6,5)
// CTL1CNTL DD *
出REC FIELDS=(1:1,5,11:SEQNUM,8,PD)
/ *
// CTL2CNTL DD *
出REC FIELDS=(6:1,5,11:SEQNUM,8,PD)
/ *
// CTL3CNTL DD *
出FIL FNAMES=OUT,OUTREC=(1,10)
/ *

这里的问题是“使用(ctl3)”无法正常工作。
输出+这个问题的低值bcos。实际上我的输出
lik 1111122222 ........(文件1,22222 frm文件2中的11111)。
自ctl3cntl以来我期望的输出后得到低值
无法正常工作。
谁能帮我这个忙...
回到顶部
查看用户资料 发送私信
surya_pathaus

活跃用户


已加入:2006年8月28日
职位:110

发布发表:2006年11月24日星期五下午3:36
引用回复

你好

您的Outrec是10。那么您将如何在记录中获得低值?

“ 1111122222”的长度为10,并且记录中没有空间获得低值,那么如何获得低值?
回到顶部
查看用户资料 发送私信
fuadk84

新的用户


已加入:2006年11月16日
帖子:10

发布发表:2006年11月24日星期五4:13 pm
引用回复

surya_pathaus写道:
你好

您的Outrec是10。那么您将如何在记录中获得低值?

“ 1111122222”的长度为10,并且记录中没有空间获得低值,那么如何获得低值?


对不起,我忘了提一件事,实际上是在获得maxcc 16
当我尝试如下所述时。

// CTL3CNTL DD *
出FIL FNAMES=OUT,OUTREC=(1,10)
/ *

正在获取输出“ 1111122222 .............”(由于输出长度可能会一直到80,因此我给输出文件指定了relen为80)
当我不使用此CTL3CNTL部分。当我使用CNTL3对其进行格式化时
这是givin maxcc 16 ......请看一下...
回到顶部
查看用户资料 发送私信
subhasis_50

主持人


加入时间:2005年3月9日
帖子:363
地点:地球

发布发表:2006年11月24日星期五5:05 pm
引用回复

尝试这个
码:

// STEP0100 EXEC PGM = ICETOOL                               
// *                                                       
//工具  DD SYSOUT = *                                   
// DFSMSG   DD SYSOUT=*                                   
// IN1      DD *   
56789             
BBBBBBB             
中华总商会             
/ *                
// IN2      DD *   
11111             
22222             
33333             
/ *                
// T3       DD DSN=&&TEMPFIL1,                             
//           DISP=(,PASS),SPACE=(TRK,(1,1),RLSE)         
// T4       DD DSN=&&TEMPFIL2,                             
//           DISP=(,PASS),SPACE=(TRK,(1,1),RLSE)         
// CON      DD DSN =&TEMPFIL1,VOL=REF=*.T3,DISP=(OLD,PASS) 
//         DD DSN=&TEMPFIL2,VOL=REF=*.T4,DISP=(OLD,PASS) 
//输出      DD SYSOUT = *                                       
// TOOLIN   DD *                                             
   COPY FROM(IN1) TO(T3) USING(CTL1)                         
   COPY FROM(IN2) TO(T4) USING(CTL2)                         
   SPLICE FROM(CON) TO(OUT) ON(81,8,ZD) WITH(6,5) USING(CTL3)
// CTL1CNTL DD *                                             
  出FIL FNAMES=T3,OUTREC=(1,5,5Z,80:X,SEQNUM,8,ZD)         
// CTL2CNTL DD *                                             
 OUTFIL FNAMES = T4,OUTREC =(5Z,6:1,5,80:X,SEQNUM,8,ZD)       
/ *                                                            
// CTL3CNTL DD *                                             
  出FIL FNAMES=OUT,OUTREC=(1,80)                           
/ *                                                            
回到顶部
查看用户资料 发送私信
fuadk84

新的用户


已加入:2006年11月16日
帖子:10

发布发表:2006年11月24日,星期五,下午6:12
引用回复

谢谢... icon_smile.gif icon_smile.gif 工作正常...
回到顶部
查看用户资料 发送私信
弗兰克·雅格

DFSORT开发人员


已加入:2005年2月15日
帖子:7129
地点:加利福尼亚州圣何塞

发布发表:2006年11月24日,星期五10:21 pm
引用回复

引用:
正在获取输出+低值


由于您在TMP1 DD上指定了LRECL = 80,因此得到的值较低。 CTL1CNTL中的OUTREC创建了一个18字节的记录,但是由于TMP1的LRECL = 80,DFSORT填充了18字节的记录将把X'00变为80字节的记录。从TMP1 DD上删除LRECL = 80,您将不会得到较低的值。

我不确定您对CTL3CNTL的看法。如果RC = 16,则DFSMSG中将出现错误消息,但未显示。

如果您使用:

码:

   OUTFIL FNAMES = OUT,OUTREC =(1,10)


您将为OUT数据集创建10个字节的记录。如果OUT DD指定的文件的LRECL = 10,那么您将只获得那10个字节。如果OUT DD指定LRECL = 80的文件,则DFSORT将再次填充低值。如果要80个字节的记录,前10个字节,然后是空白,请使用:

码:

   OUTFIL FNAMES = OUT,OUTREC =(1,10,80:X)
回到顶部
查看用户资料 发送私信
弗兰克·雅格

DFSORT开发人员


已加入:2005年2月15日
帖子:7129
地点:加利福尼亚州圣何塞

发布发表:2006年11月24日星期五晚上10:27
引用回复

fuadk84,

您很难帮助您。如果您没有说不能使用ICETOOL,我会立即将您指向“从两个文件逐个记录的联接字段”智能DFSORT技巧:

www.ibm.com/servers/storage/support/software/sort/mvs/tricks/

它将向您展示如何立即做您想做的事情。后来有很多帖子,即使您最初说您不能使用ICETOOL,您仍然显示了ICETOOL的工作。您说存在错误,但未显示错误消息。然后,Subhasis向您展示了Smart DFSORT技巧,我在第一篇博文之后会告诉您。

将来,请尝试以一种不会使人们难以帮助您的方式发布信息。
回到顶部
查看用户资料 发送私信
fuadk84

新的用户


已加入:2006年11月16日
帖子:10

发布发表:2006年11月26日,星期日,下午4:16
引用回复

对不起..这是我的错误....实际上我知道
我只能稍后再使用icetool。

您能否解释以下情况:
码:

   SPLICE FROM(CON) TO(OUT) ON(81,8,ZD) WITH(6,5) USING(CTL3)
// CTL1CNTL DD *                                             
  出FIL FNAMES=T3,OUTREC=(1,5,5Z,80:X,SEQNUM,8,ZD)         
// CTL2CNTL DD *                                             
 OUTFIL FNAMES = T4,OUTREC =(5Z,6:1,5,80:X,SEQNUM,8,ZD)
回到顶部
查看用户资料 发送私信
弗兰克·雅格

DFSORT开发人员


已加入:2005年2月15日
帖子:7129
地点:加利福尼亚州圣何塞

发布发表:2006年11月26日,星期日,晚上10:07
引用回复

首先,subhasis版本的工作不是最好的方法。太复杂了。这是一个更好的版本:

码:

// S1 EXEC PGM = ICETOOL                                                 
//工具  DD SYSOUT = *                                               
// DFSMSG   DD SYSOUT=*                                               
// IN1      DD *                                                       
56789                                                                 
BBBBBBB                                                                 
中华总商会                                                                 
/ *                                                                    
// IN2      DD *                                                       
11111                                                                 
22222                                                                 
33333                                                                 
/ *                                                                    
// T1 DD DSN =&&T1,UNIT=SYSDA,SPACE=(CYL,(5,5)),DISP=(MOD,PASS)         
//输出      DD SYSOUT = *                                               
// TOOLIN   DD *                                                       
从复制(IN1) TO(T1) USING(CTL1)                                     
从复制(IN2) TO(T1) USING(CTL2)                                     
来自(T1) TO(OUT) ON(81,8,ZD) WITH(6,5) USING(CTL3)             
// CTL1CNTL DD *                                                       
  INREC OVERLAY=(81:SEQNUM,8,ZD)                                     
// CTL2CNTL DD *                                                       
  INREC BUILD=(6:1,5,81:SEQNUM,8,ZD)                                 
/ *                                                                    
// CTL3CNTL DD *                                                       
  出FIL FNAMES=OUT,BUILD=(1,80)                                     
/ *                                                                    


CTL1CNTL INREC语句向位置81-88中的每个IN1记录添加序列号。

CNTL2CNTL INREC语句将IN2位置1-5放置在输出位置6-10处,并将序列号添加到位置81-88。

使用两个COPY运算符后,T1记录如下所示:

码:

56789       ...    00000001
BBBBBBB       ...    00000002
中华总商会       ...    00000003
     11111  ...    00000001
     22222  ...    00000002
     33333  ...    00000003



新的SPLICE运算符为每对序列号创建一个拼接记录,其中第一条记录的1-5字段和第二条记录的6-10字段。 出FIL语句删除序列号。
回到顶部
查看用户资料 发送私信
查看上一个主题 :: :: 查看下一个主题  
发表新话题   回复主题 查看书签
所有时间均为格林尼治标准时间+ 6小时
论坛索引 -> JCL& VSAM

 


类似主题
话题 论坛 回覆
没有新帖 基于P ...的条件步骤执行 JCL& VSAM 9
没有新帖 有MIME内容的邮件出现问题 JCL& VSAM 2
没有新帖 合并和汇总文件内容 同步排序 14
没有新帖 读取PS文件的内容 JCL& VSAM 3
没有新帖 将2个文件的内容合并到s ... 同步排序 1
搜索我们的论坛:

回到顶部