1

我创建了一个包含一些记录的顺序文件。我必须将它们复制到 KSDS 集群。所以我为它写了一个JCL。当我在我的顺序文件中给出数字时,它正在工作,但是当我给出英文字母时,它不起作用。

这是为什么??


这是我创建 KSDS 集群的代码

 //TRC186H JOB (TRC,TRC,TRC186,D2,DT99X),CLASS=A,   
 //      MSGLEVEL=(1,1),MSGCLASS=C,NOTIFY=&SYSUID   
 //STEP1 EXEC PGM=IDCAMS                            
 //SYSPRINT DD SYSOUT=*                             
 //SYSIN DD *                                       
    DEFINE CLUSTER -                                
    (NAME(TRC186.VSAM.CASE.CLUSTER) -                
    TRACKS(2,2) -                                    
    CONTROLINTERVALSIZE(4096) -                      
    INDEXED -                                        
    KEYS(6,1) -                                      
    FREESPACE(10,10)) -                              
    DATA -                                          
    (NAME(TRC186.CASE.DATA) -                      
     RECORDSIZE(180 180)) -                         
      INDEX -                    
      (NAME(TRC186.CASE.INDEX) - 
       CONTROLINTERVALSIZE(4096)) 
 /*             


这是我从顺序文件复制到 KSDS 集群的代码

  //TRC186A JOB (TRG),CLASS=A,MSGLEVEL=(1,1),MSGCLASS=A, 
  //          NOTIFY=&SYSUID                             
  //STEP1 EXEC PGM=IDCAMS                                
  //INPUTDD  DD DSN=TRC186.VSAM.INPUTPS,DISP=OLD         
  //SYSPRINT DD SYSOUT=*                                 
  //SYSIN DD *                                           
       REPRO -                                              
       INFILE(INPUTDD) -                                    
       OUTDATASET(TRC186.VSAM.CASE.CLUSTER)                 
  /*    


我给出的输入是

123456
234567
345678
456789
567891

它们很容易被复制,但是当我给出英文字母时,例如-
abcdefg
cdhert
kjsdfg
qwerty
kjhgfd

这不会被复制到集群中。

请解释为什么?

4

1 回答 1

1

KEYS在 KSDS 的定义中指定 6,1。您将要检查这是否是您想要的。

加载数据时KSDS必须REPRO已经在键序列中。您显示的数字数据是按键顺序巧合的,字母数据不是。

如果你在你的IDCAMS步骤之前有一个SORT步骤,那么你应该是干净的。但是,查看VSAM想要密钥的方式,并与SORT想要密钥的方式进行比较。它就是这样儿的。

a KSDSon an的 KEY 定义IDCAMS DEFINE具有特定的格式。首先,您指定正确执行的长度,然后指定偏移量。偏移量的意思是“从记录起点开始的字节数”。因此,偏移量零是字节一(或第一列),偏移量一(您指定)是记录的字节二,这意味着您的数字示例仍然按顺序排列(有点侥幸)但您的字母不是,他们需要在第二个字母上按DEFINE您使用的特定顺序排列。

于 2014-10-10T07:44:31.570 回答