Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting 使用SORT在现有数据的末尾追加数据_Sorting_Mainframe_Dfsort - Fatal编程技术网

Sorting 使用SORT在现有数据的末尾追加数据

Sorting 使用SORT在现有数据的末尾追加数据,sorting,mainframe,dfsort,Sorting,Mainframe,Dfsort,我希望下面的代码也适用于输入中的可变长度数据。所以,我可以在它的末尾加上双引号。我不想用COBOL。可能吗 ZZZZ.vvv.FILE.CORR1包含以下记录:- ABCDEFG_AAAAAA_BBB0001.csv ABCDEFG_AAAAAA_BBB0002.csv ABCDEFG_AAAAAA_BBB0003.csv 文件ZZZZ.vvv.file.CORR2中按以下代码输出的记录为: r_file1="ABCDEFG_AAAAAA_BBB0001.csv" r_file

我希望下面的代码也适用于输入中的可变长度数据。所以,我可以在它的末尾加上双引号。我不想用COBOL。可能吗

  • ZZZZ.vvv.FILE.CORR1包含以下记录:-

    ABCDEFG_AAAAAA_BBB0001.csv  
    ABCDEFG_AAAAAA_BBB0002.csv  
    ABCDEFG_AAAAAA_BBB0003.csv 
    
  • 文件ZZZZ.vvv.file.CORR2中按以下代码输出的记录为:

    r_file1="ABCDEFG_AAAAAA_BBB0001.csv"  
    r_file2="ABCDEFG_AAAAAA_BBB0002.csv"  
    r_file3="ABCDEFG_AAAAAA_BBB0003.csv" 
    
  • JCL代码是:

    //STEPSRT5 EXEC PGM=SORT                                              
    //SYSOUT   DD  SYSOUT=*                                               
    //SORTIN   DD  DSN=ZZZZ.VVVV.FILE.CORR1,       <ID>
    //             DISP=SHR                                               
    //SORTOUT  DD  DSN=ZZZZ.VVVV.FILE.CORR2,      <OD>
    //             DCB=(RECFM=FB,LRECL=80,BLKSIZE=0),                     
    //             SPACE=(27920,(29,6),RLSE),                             
    //             DISP=(NEW,CATLG,DELETE)                                
    //SYSIN    DD  *                                                      
     SORT FIELDS=COPY                                                     
     OUTREC FIELDS=(1:C'r_file',7:SEQNUM,1,ZD,8:C'="',10:1,26,36:C'"',44X)
    /*
    
    //STEPSRT5 EXEC PGM=SORT
    //SYSOUT DD SYSOUT=*
    //SORTIN DD DSN=ZZZZ.vvv.FILE.CORR1,
    //DISP=SHR
    //SORTOUT DD DSN=ZZZZ.vvv.FILE.CORR2,
    //DCB=(RECFM=FB,LRECL=80,BLKSIZE=0),
    //空间=(27920,(29,6),RLSE),
    //DISP=(新建、CATLG、删除)
    //SYSIN DD*
    排序字段=复制
    OUTREC字段=(1:C'r_文件',7:SEQNUM,1,ZD,8:C'=”,10:1,26,36:C'',44X)
    /*
    
    顺便说一下,这不是JCL,它们是排序控制卡。您可以在站点分拣产品手册中找到所有详细信息

    INREC/OUTREC/OUTIL只能包含一个构建、覆盖、IFTHEN或一个或多个IFTHEN。有两种方法可以做到这一点,因为您希望无条件地使用两个函数,或者使用两个IFTHEN=(WHEN=NONE)和IFTHEN的函数use部分

    您的记录不是可变的。它们是固定长度的(或者您现有的代码无法工作),可能是80字节(如果不是80字节,请适当更改80:X)

    请记住,您将获得具有10条以上输入记录的重复序列号(第十条将为您提供r_file0)

    您还可以查看SQZ(挤压),因为您的数据中没有嵌入空格

    顺便说一下,这不是JCL,它们是排序控制卡。您可以在站点的排序产品手册中找到所有详细信息

    INREC/OUTREC/OUTFIL只能包含BUILD、OVERLAY、IFTHEN或一个或多个IFTHEN中的一个。由于您希望无条件使用两个函数,因此有两种方法与上述方法类似,或者使用两个IFTHEN=(当=无时,函数使用IFTHEN的一部分)

    您的记录不是可变的。它们是固定长度的(或者您现有的代码无法工作),可能是80字节(如果不是80字节,请适当更改80:X)

    请记住,您将获得具有10条以上输入记录的重复序列号(第十条将为您提供r_file0)

    您还可以查看SQZ(挤压),因为您的数据中没有嵌入空格

    顺便说一下,这不是JCL,它们是排序控制卡。您可以在站点的排序产品手册中找到所有详细信息

    INREC/OUTREC/OUTFIL只能包含BUILD、OVERLAY、IFTHEN或一个或多个IFTHEN中的一个。由于您希望无条件使用两个函数,因此有两种方法与上述方法类似,或者使用两个IFTHEN=(当=无时,函数使用IFTHEN的一部分)

    您的记录不是可变的。它们是固定长度的(或者您现有的代码无法工作),可能是80字节(如果不是80字节,请适当更改80:X)

    请记住,您将获得具有10条以上输入记录的重复序列号(第十条将为您提供r_file0)

    您还可以查看SQZ(挤压),因为您的数据中没有嵌入空格

    顺便说一下,这不是JCL,它们是排序控制卡。您可以在站点的排序产品手册中找到所有详细信息

    INREC/OUTREC/OUTFIL只能包含BUILD、OVERLAY、IFTHEN或一个或多个IFTHEN中的一个。由于您希望无条件使用两个函数,因此有两种方法与上述方法类似,或者使用两个IFTHEN=(当=无时,函数使用IFTHEN的一部分)

    您的记录不是可变的。它们是固定长度的(或者您现有的代码无法工作),可能是80字节(如果不是80字节,请适当更改80:X)

    请记住,您将获得具有10条以上输入记录的重复序列号(第十条将为您提供r_file0)

    您还可以查看SQZ(挤压),因为您的数据中没有嵌入空格。

    请尝试以下操作:

    //STEP01   EXEC PGM=SORT
    //SYSOUT   DD  SYSOUT=*
    //SORTOUT  DD  SYSOUT=*
    //SYSIN    DD  *
     SORT FIELDS=COPY
     INREC BUILD=(C'r_file',SEQNUM,3,CSF,C'="',1,68,C'"')
     OUTREC BUILD=(1,80,SQZ=(SHIFT=LEFT))
    /*
    //SORTIN   DD  *
    ABCDEFG_AAAAAA_BBB0001.csv
    ABCDEFG_AAAAAA_BBB0002.csv
    ABCDEFG_AAAAAA_BBB0003.csv
    ABCDEFG_AAAAAA_0702.csv
    ABCDEFG_AAAAAA_AAAYZ0702.csv
    ABCDEFG_AAAAAA_BBB.csv
    ABCDEFG_AAAAAA_XXXXXXXAMY0702.csv
    ABCDEFG_AAAAAA_YZ0702.csv
    ABCDEFG_AAAAAA_C0702.csv
    ABCDEFG_AAAAAA_0702.csv
    ABCDEFG_AAAAAA_702.csv
    ABCDEFG_AAAAAA_02.csv
    ABCDEFG_AAAAAA_2.csv
    /*
    //SORTMSG DD SYSOUT=*
    //
    
    SORTOUT将包含:

    r_file1="ABCDEFG_AAAAAA_BBB0001.csv"
    r_file2="ABCDEFG_AAAAAA_BBB0002.csv"
    r_file3="ABCDEFG_AAAAAA_BBB0003.csv"
    r_file4="ABCDEFG_AAAAAA_0702.csv"
    r_file5="ABCDEFG_AAAAAA_AAAYZ0702.csv"
    r_file6="ABCDEFG_AAAAAA_BBB.csv"
    r_file7="ABCDEFG_AAAAAA_XXXXXXXAMY0702.csv"
    r_file8="ABCDEFG_AAAAAA_YZ0702.csv"
    r_file9="ABCDEFG_AAAAAA_C0702.csv"
    r_file10="ABCDEFG_AAAAAA_0702.csv"
    r_file11="ABCDEFG_AAAAAA_702.csv"
    r_file12="ABCDEFG_AAAAAA_02.csv"
    r_file13="ABCDEFG_AAAAAA_2.csv"
    
    INREC
    构建一个类似以下内容的记录:

        r_file 10="ABCDEFG_AAAAAA_0702.csv                                       "
    
    诀窍是对序列号使用
    CFS
    ,这样就可以使用前导空格创建序列号,这样我们就不会像使用
    ZD
    SQZ
    使用
    PREBLANK=C'0'
    去除前导零根本不起作用-它去除了所有零,包括插入和尾随)

    下一步
    OUTREC
    从记录中挤出空格,并根据需要显示文件名

    注意:此解决方案假定您的文件名不包含嵌入空格。如果包含嵌入空格,则需要进行更多的修补。

    请尝试以下操作:

    //STEP01   EXEC PGM=SORT
    //SYSOUT   DD  SYSOUT=*
    //SORTOUT  DD  SYSOUT=*
    //SYSIN    DD  *
     SORT FIELDS=COPY
     INREC BUILD=(C'r_file',SEQNUM,3,CSF,C'="',1,68,C'"')
     OUTREC BUILD=(1,80,SQZ=(SHIFT=LEFT))
    /*
    //SORTIN   DD  *
    ABCDEFG_AAAAAA_BBB0001.csv
    ABCDEFG_AAAAAA_BBB0002.csv
    ABCDEFG_AAAAAA_BBB0003.csv
    ABCDEFG_AAAAAA_0702.csv
    ABCDEFG_AAAAAA_AAAYZ0702.csv
    ABCDEFG_AAAAAA_BBB.csv
    ABCDEFG_AAAAAA_XXXXXXXAMY0702.csv
    ABCDEFG_AAAAAA_YZ0702.csv
    ABCDEFG_AAAAAA_C0702.csv
    ABCDEFG_AAAAAA_0702.csv
    ABCDEFG_AAAAAA_702.csv
    ABCDEFG_AAAAAA_02.csv
    ABCDEFG_AAAAAA_2.csv
    /*
    //SORTMSG DD SYSOUT=*
    //
    
    SORTOUT将包含:

    r_file1="ABCDEFG_AAAAAA_BBB0001.csv"
    r_file2="ABCDEFG_AAAAAA_BBB0002.csv"
    r_file3="ABCDEFG_AAAAAA_BBB0003.csv"
    r_file4="ABCDEFG_AAAAAA_0702.csv"
    r_file5="ABCDEFG_AAAAAA_AAAYZ0702.csv"
    r_file6="ABCDEFG_AAAAAA_BBB.csv"
    r_file7="ABCDEFG_AAAAAA_XXXXXXXAMY0702.csv"
    r_file8="ABCDEFG_AAAAAA_YZ0702.csv"
    r_file9="ABCDEFG_AAAAAA_C0702.csv"
    r_file10="ABCDEFG_AAAAAA_0702.csv"
    r_file11="ABCDEFG_AAAAAA_702.csv"
    r_file12="ABCDEFG_AAAAAA_02.csv"
    r_file13="ABCDEFG_AAAAAA_2.csv"
    
    INREC
    构建一个类似以下内容的记录:

        r_file 10="ABCDEFG_AAAAAA_0702.csv                                       "
    
    诀窍是对序列号使用
    CFS
    ,这样就可以使用前导空格创建序列号,这样我们就不会像使用
    ZD
    SQZ
    使用
    PREBLANK=C'0'
    去除前导零根本不起作用-它去除了所有零,包括插入和尾随)

    下一步
    OUTREC
    从记录中挤出空格,并根据需要显示文件名

    注意:此解决方案假定您的文件名不包含嵌入空格。如果包含嵌入空格,则需要进行更多的修补。

    请尝试以下操作:

    //STEP01   EXEC PGM=SORT
    //SYSOUT   DD  SYSOUT=*
    //SORTOUT  DD  SYSOUT=*
    //SYSIN    DD  *
     SORT FIELDS=COPY
     INREC BUILD=(C'r_file',SEQNUM,3,CSF,C'="',1,68,C'"')
     OUTREC BUILD=(1,80,SQZ=(SHIFT=LEFT))
    /*
    //SORTIN   DD  *
    ABCDEFG_AAAAAA_BBB0001.csv
    ABCDEFG_AAAAAA_BBB0002.csv
    ABCDEFG_AAAAAA_BBB0003.csv
    ABCDEFG_AAAAAA_0702.csv
    ABCDEFG_AAAAAA_AAAYZ0702.csv
    ABCDEFG_AAAAAA_BBB.csv
    ABCDEFG_AAAAAA_XXXXXXXAMY0702.csv
    ABCDEFG_AAAAAA_YZ0702.csv
    ABCDEFG_AAAAAA_C0702.csv
    ABCDEFG_AAAAAA_0702.csv
    ABCDEFG_AAAAAA_702.csv
    ABCDEFG_AAAAAA_02.csv
    ABCDEFG_AAAAAA_2.csv
    /*
    //SORTMSG DD SYSOUT=*
    //
    
    SORTOUT将包含:

    r_file1="ABCDEFG_AAAAAA_BBB0001.csv"
    r_file2="ABCDEFG_AAAAAA_BBB0002.csv"
    r_file3="ABCDEFG_AAAAAA_BBB0003.csv"
    r_file4="ABCDEFG_AAAAAA_0702.csv"
    r_file5="ABCDEFG_AAAAAA_AAAYZ0702.csv"
    r_file6="ABCDEFG_AAAAAA_BBB.csv"
    r_file7="ABCDEFG_AAAAAA_XXXXXXXAMY0702.csv"
    r_file8="ABCDEFG_AAAAAA_YZ0702.csv"
    r_file9="ABCDEFG_AAAAAA_C0702.csv"
    r_file10="ABCDEFG_AAAAAA_0702.csv"
    r_file11="ABCDEFG_AAAAAA_702.csv"
    r_file12="ABCDEFG_AAAAAA_02.csv"
    r_file13="ABCDEFG_AAAAAA_2.csv"
    
    INREC
    构建一个类似以下内容的记录:

        r_file 10="ABCDEFG_AAAAAA_0702.csv                                       "
    
    诀窍是对序列号使用
    CFS
    ,以便创建它们