首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为VSAM KSDS定义备用索引

为VSAM KSDS定义备用索引
EN

Stack Overflow用户
提问于 2021-11-01 10:55:50
回答 1查看 51关注 0票数 1

为我的VSAM KSDS定义备用索引时出现问题。上面写着

代码语言:javascript
复制
IDC3211I KEYWORD 'DATA' IS IMPROPER  

下面是我的VSAM KSDS定义:

代码语言:javascript
复制
  DEFINE CLUSTER                            -    
       (NAME(IBMUSER.TEST.SAMPLE.KSDS)      -    
        VOLUMES(ZASYS1)                     -    
        TRACKS(15 15)                       -    
        INDEXED                             -    
        SHAREOPTIONS(1 3) UNIQUE            -    
        RECORDSIZE(100 100)                 -    
        KEYS(18 0)                          -    
      DATA(NAME(IBMUSER.TEST.SAMPLE.KSDS.DATA))- 
     INDEX(NAME(IBMUSER.TEST.SAMPLE.KSDS.INDEX)) 

这是我的备用索引定义:

代码语言:javascript
复制
  DEFINE AIX (NAME(IBMUSER.TEST.SAMPLE.AIX)- 
  RELATE(IBMUSER.TEST.SAMPLE.KSDS)       -   
  CISZ(4096)                             -   
  FREESPACE(20,20)                       -   
  KEYS(20,19)                            -   
  NONUNIQUEKEY                           -   
  UPGRADE                                -   
  RECORDSIZE(61,61)                    -     
  DATA(NAME(IBMUSER.TEST.SAMPLE.AIX.DATA))-  
  INDEX(NAME(IBMUSER.TEST.SAMPLE.AIX.INDEX)) 

我不明白为什么它说关键字数据是不适当的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-01 20:50:41

有几个问题。第一个问题是命令中的语法问题。

代码语言:javascript
复制
  DEFINE CLUSTER                                   -                          
       (                                           -                          
        NAME(IBMUSER.TEST.SAMPLE.KSDS)             -                          
        TRACKS(15 15)                              -                          
        INDEXED                                    -                          
        VOLUMES(ZMSHR1)                            -                          
        SHAREOPTIONS(1 3) UNIQUE                   -                          
        RECORDSIZE(100 100)                        -                          
        KEYS(18 0)                                 -                          
      DATA(NAME(IBMUSER.TEST.SAMPLE.KSDS.DATA))    -                          
IDC3211I KEYWORD 'DATA' IS IMPROPER                                           
     INDEX(NAME(IBMUSER.TEST.SAMPLE.KSDS.INDEX))                              
IDC3202I ABOVE TEXT BYPASSED UNTIL NEXT COMMAND. CONDITION CODE IS 12         

这是因为在结束CLUSTER部分的KEYS子句后缺少右括号。添加如下所示的闭括号将完成DEFINE CLUSTER部分。

代码语言:javascript
复制
  DEFINE CLUSTER                                   -
       (                                           -
        NAME(IBMUSER.TEST.SAMPLE.KSDS)             -
        TRACKS(15 15)                              -
        INDEXED                                    -
        VOLUMES(ZMSHR1)                            -
        SHAREOPTIONS(1 3) UNIQUE                   -
        RECORDSIZE(100 100)                        -
        KEYS(18 0)                                 -
       )                                           -
      DATA(NAME(IBMUSER.TEST.SAMPLE.KSDS.DATA))    -
     INDEX(NAME(IBMUSER.TEST.SAMPLE.KSDS.INDEX))
IDC0508I DATA ALLOCATION STATUS FOR VOLUME ZMSHR1 IS 0         
IDC0509I INDEX ALLOCATION STATUS FOR VOLUME ZMSHR1 IS 0        
IDC0001I FUNCTION COMPLETED, HIGHEST CONDITION CODE WAS 0      

当这个问题得到纠正时,您将得到另一个错误,因为您需要为AIX指定一个空间和卷。使用下面的定义,其中包含AIX所需的参数。

代码语言:javascript
复制
  DEFINE AIX                                       -
         (                                         -
          NAME(IBMUSER.TEST.SAMPLE.AIX)            -
          TRACKS(15 15)                            -
          VOLUMES(ZMSHR1)                          -
          RELATE(IBMUSER.TEST.SAMPLE.KSDS)         -
          CISZ(4096)                               -
          FREESPACE(20,20)                         - 
          KEYS(20,19)                              - 
          NONUNIQUEKEY                             - 
          UPGRADE                                  - 
          RECORDSIZE(61,61)                        - 
         )                                         - 
        DATA(NAME(IBMUSER.TEST.SAMPLE.AIX.DATA))   - 
       INDEX(NAME(IBMUSER.TEST.SAMPLE.AIX.INDEX))    

完成任务以完成集群的创建,随后是ALTERNATEINDEX。我对语句进行了格式化,使其更具可读性:

代码语言:javascript
复制
//IDCAMS   JOB CLASS=A,NOTIFY=&SYSUID               
//STEP0010 EXEC PGM=IDCAMS                          
//SYSPRINT DD  SYSOUT=*                             
//SYSIN    DD  *                                    
  DELETE IBMUSER.TEST.SAMPLE.KSDS                   
  DELETE IBMUSER.TEST.SAMPLE.AIX                    
  SET MAXCC = 0                                     
                                                    
  DEFINE CLUSTER(                                   -
                 NAME(IBMUSER.TEST.SAMPLE.KSDS)     -
                 TRACKS(15 15)                      -
                 INDEXED                            -
                 VOLUMES(ZMSHR1)                    -
                 SHAREOPTIONS(1 3) UNIQUE           -
                 RECORDSIZE(100 100)                -
                 KEYS(18 0)                         -
         )                                          -
         DATA(                                      -
           NAME(IBMUSER.TEST.SAMPLE.KSDS.DATA)      -
         )                                          -
         INDEX(                                     -
               NAME(IBMUSER.TEST.SAMPLE.KSDS.INDEX) -
         )    
                                                                                                        
  DEFINE AIX(                                       -
             NAME(IBMUSER.TEST.SAMPLE.AIX)          -
             TRACKS(15 15)                          -
             VOLUMES(ZMSHR1)                        -
             RELATE(IBMUSER.TEST.SAMPLE.KSDS)       -
             CISZ(4096)                             -
             FREESPACE(20,20)                       -
             KEYS(20,19)                            -
             NONUNIQUEKEY                           -
             UPGRADE                                -
             RECORDSIZE(61,61)                      -
            )                                       -
         DATA(                                      -
              NAME(IBMUSER.TEST.SAMPLE.AIX.DATA))   -
             )                                      -
         INDEX(                                     -
               NAME(IBMUSER.TEST.SAMPLE.AIX.INDEX)  -
              )         
/*                                                  
//                                                  
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69795910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档