zoukankan      html  css  js  c++  java
  • ZD ZDC数据类型 sort

    概述

      dfsort是IBM的产品,syncsort是SYNCSORT公司的产品,但两者相似度极高。基本上会用其中一个就会用另外一个,下文将以sort代表两者。本文介绍sort中数据类型的注意点及一些常用并且十分有用的数据类型。

     https://www.ibm.com/support/knowledgecenter/SSLTBW_2.4.0/com.ibm.zos.v2r4.icea100/sorcst.htm

    类型

    1.ZDZDFZDC

      ZD可说是sort中最常用的数据类型之一,表示十进制数(zoned decimal)

      ZD实际是有符号,所以有一个问题就是正数的最后一个字节的高4bit默认是C,并不是F。所以最后一位显示时并不是0(X'F0')~9(X'F9'), 而是{(X'C0')~I(X'C9')。有时并不想要这个结果,这时ZDF就派上场了。ZDF与ZD相似,但对于ZDF来说,正数的最后一个字节的高4bit默认是F,这样在显示正数时就正常了。但比较浮云的是,因为负数的内存形式仍然与ZD无异(最后一位为X'D0'~X'D9',显示时不是数字),所以要比较合理地显示数字,最好还是使用EDIT语句。

      ZDC等同于ZD

      例子

      输入,PD类型的+1145728:

    显示

    .

    .

    .

    .

    HEX MODE

    11

    45

    72

    8C

      

      

     

     

      各种情况输出:

    1,4,PD,TO=ZD/ZDC

    显示

    1

    1

    4

    5

    7

    2

    H

    HEX MODE

    F1

    F1

    F4

    F5

    F7

    F2

    C8

      

     

     

      

      1,4,PD,TO=ZDF

    显示

    1

    1

    4

    5

    7

    2

    8

    HEX MODE

    F1

    F1

    F4

    F5

    F7

    F2

    F8

      

     

     

     

      1,4,PD,EDIT=(STTTTTTT,SIGN=(+,-))

    显示

    +

    1

    1

    4

    5

    7

    2

    8

    HEX MODE

    4E

    F1

    F1

    F4

    F5

    F7

    F2

    F8

      

     

     

     

    2.BIFI

      BI表示binary,要点是BI是无符号的,也就是按原码存储,即使第一个bit为1也是正数。

      Fi则是有符号的binary第一个bit为0则是正数,第一个bit为1则是负数。负数是补码形式的。

       X'E163',如果是BI则是57699,如果是FI则是-7837

     

    3.UFFSFF

      UFF表示自由形式的数字。所有非0~9的字符都被忽略。

      $2,232,98,32.540 → +22329832540

      173/821/@5 → +1738215

      ABC → +0

     

      SFF与UFF相似,但SFF是有符号的,在任何位置出现-或),都视为负数

      -76,23.847 → -7623847

      (234/32/E2) → -234322

     

    4.AQ

      (1)改变默认顺序。

      例:排序的时候,X'5B'将在X'EA'之前,X'E9'之后。相当于EBCDIC码表的顺序被改变为了 E9 5B EA,当然只有在这里的SORT语句中生效,系统的EBCDIC码表还是老样子.

      SORT FIELDS=(1,1,AQ,A)

      ALTSEQ CODE=(5BEA)

       注意:sort中语句的顺序是没有约束的,所以这里将ALTSEQ写在后面是可以的。

     

      (2)替换。

      例:将X'C3'替换为X'F1',将X'C4'替换为X'F2'

      ALTSEQ CODE=(C3F1,C4F2)

      OUTREC BUILD=(1,80,TRAN=ALTSEQ)

     

    5.SS

      SS表示在一个字符串中包含某个字符串。

      例:一条记录的前十个字节中只要包含ALAN,这条记录就会参与排序。

      INCLUDE COND=(1,10,SS,EQ,C'ALAN')

    参考

      (1)z/OS V1R12.0 DFSORT Application Programming Guide

      http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/ICE1CA50/CCONTENTS?SHELF=ICE1SH50&DN=SC26-7523-05&DT=20100630155256

      (2)ASCII or EBCDIC

      http://www.simotime.com/asc2ebc1.htm

     
    分类: mainframe
  • 相关阅读:
    C++ Primer读书笔记
    谨慎使用多线程中的fork
    C++中多线程与Singleton的那些事儿
    浅谈指针的比较
    条件变量的陷阱与思考
    2014年终总结
    循环队列的一种实现模型
    react-native使用jest、enzyme进行单元测试
    富文本编辑器开发原理
    模拟实现单元测试中的异步测试
  • 原文地址:https://www.cnblogs.com/kakaisgood/p/13294527.html
Copyright © 2011-2022 走看看