精华内容
下载资源
问答
  • C4-COBOL 数据类型

    2020-09-22 14:45:27
    COBOL 数据类型 数据部(Data Division)是用来定义程序中使用的变量。为了描述COBOL中的数据,必须了解以下术语: Data Name(数据名称) Level Number(级数) Picture Clause(图片子句) Value Clause(值子句...

    COBOL 数据类型

    数据部(Data Division)是用来定义程序中使用的变量。为了描述COBOL中的数据,必须了解以下术语:

    • Data Name(数据名称)
    • Level Number(级数)
    • Picture Clause(图片子句)
    • Value Clause(值子句)
    01            TOTAL-STUDENTS            PIC9(5)            VALUE '125'.
    |                    |                    |                    |
    |                    |                    |                    |
    |                    |                    |                    | 
    Level Number     Data Name           Picture Clause       Value Clause
    

    Data Name数据名称

    数据名称必须在数据部中定义,然后才能在过程部中使用。它们必须有一个用户自定义的名称;不能使用保留词。数据名为存储实际数据的存储单元提供引用。它们可以是基本类型或组类型。

    下面的示例显示有效和无效的数据名称:

            Valid:
            WS-NAME
            TOTAL-STUDENTS
            A100
            100B
    
            Invalid:
            MOVE            (Reserved Words)
            COMPUTE         (Reserved Words)
            100             (No Alphabet)
            100+B           (+ is not allowed) 
    

    Level Number级数

    级数是用于指定记录中的数据级别。它们用于区分基本项和组项。基本项可以组合在一起创建组项。

    级数描述
    01记录描述条目
    02至49组项和基本项
    66重命子句项
    77不能被细分项
    88条件名称条目
    • Elementary items基本项目 不能进一步细分。级数,数据名称,图片子句和值子句(可选)用于描述基本项。
    • Group items组项目 由一个或多个基本项组成。级数,数据名称和值子句(可选)用于描述组项。组级数始终为01。

    下面的示例演示Elementary itemsGroup items

            DATA DIVISION.
            WORKING-STORAGE SECTION.
            01 WS-NAME    PIC X(25).                               ---> ELEMENTARY ITEM 
            01 WS-CLASS   PIC 9(2)  VALUE  '10'.                   ---> ELEMENTARY ITEM
    
            01 WS-ADDRESS.                                         ---> GROUP ITEM   
               05 WS-HOUSE-NUMBER    PIC 9(3).                     ---> ELEMENTARY ITEM
               05 WS-STREET          PIC X(15).                    ---> ELEMENTARY ITEM
               05 WS-CITY            PIC X(15).                    ---> ELEMENTARY ITEM
               05 WS-COUNTRY         PIC X(15)  VALUE 'INDIA'.     ---> ELEMENTARY ITEM
    

    Picture Clause图片子句

    图片子句用于定义以下项目:

    • **数据类型:**可以是数字,字母或字母数字。数字类型仅由数字0到9组成。字母类型由字母A到Z和空格组成。字母数字类型由数字,字母和特殊字符组成。
    • **符号:**可以与数字数据一起使用。它可以是+或-。
    • **小数点位置:**可与数字数据一起使用。假设位置是小数点的位置,而不包括在数据中。
    • **长度:**定义数据项使用的字节数。

    在图片子句中使用的符号:

    符号描述
    9数字
    A字母
    X字母数字
    V隐式小数
    S符号
    P假定小数

    下面的例子说明了如何使用PIC子句:

            IDENTIFICATION DIVISION.
            PROGRAM-ID. HELLO.
    
            DATA DIVISION.
               WORKING-STORAGE SECTION.
               01 WS-NUM1 PIC S9(3)V9(2).
               01 WS-NUM2 PIC PPP999.
               01 WS-NUM3 PIC S9(3)V9(2) VALUE -123.45.
               01 WS-NAME PIC A(6) VALUE 'ABCDEF'.
               01 WS-ID PIC X(5) VALUE 'A121$'.
    
            PROCEDURE DIVISION.
               DISPLAY "WS-NUM1 : "WS-NUM1.
               DISPLAY "WS-NUM2 : "WS-NUM2.
               DISPLAY "WS-NUM3 : "WS-NUM3.
               DISPLAY "WS-NAME : "WS-NAME.
               DISPLAY "WS-ID : "WS-ID.
            STOP RUN.
    

    JCL执行上述COBOL程序:

    //SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C
    //STEP1 EXEC PGM=HELLO
    

    当你编译和执行上面的程序,会产生以下结果:

    WS-NUM1 : +000.00
    WS-NUM2 : .000000
    WS-NUM3 : -123.45
    WS-NAME : ABCDEF
    WS-ID : A121$
    

    Value Clause值子句

    值子句是一个可选子句,用于初始化数据项。该值可以是数字文字,字母数字文字,或象征常数。它可以与组项和基本项一起使用。

    下面的例子显示值子句的使用:

            IDENTIFICATION DIVISION.
            PROGRAM-ID. HELLO.
    
            DATA DIVISION.
               WORKING-STORAGE SECTION.
               01 WS-NUM1 PIC 99V9 VALUE IS 3.5.
               01 WS-NAME PIC A(6) VALUE 'ABCD'.
               01 WS-ID PIC 99 VALUE ZERO.
    
            PROCEDURE DIVISION.
               DISPLAY "WS-NUM1 : "WS-NUM1.
               DISPLAY "WS-NAME : "WS-NAME.
               DISPLAY "WS-ID   : "WS-ID.
            STOP RUN.
    

    JCL执行上述COBOL程序:

    //SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C
    //STEP1 EXEC PGM=HELLO
    

    当你编译和执行上面的程序,会产生以下结果:

    WS-NUM1 : 03.5
    WS-NAME : ABCD
    WS-ID   : 00
    
    展开全文
  • COBOL数据类型

    千次阅读 2021-03-24 11:20:33
    浅谈cobol的几种数据类型 COBOL中使用PICTURE子句来定义数据类型. 主要的数据类型有以下几类: 类型 示例 说明 字母形 A(2) 只能使用26个字符和空格. 字符形 X(2) 可以使用字符集定义的字符和数字 数字形 S9V99 数字...

    浅谈cobol的几种数据类型 COBOL中使用PICTURE子句来定义数据类型. 主要的数据类型有以下几类:
    类型 示例 说明
    字母形 A(2) 只能使用26个字符和空格. 字符形 X(2) 可以使用字符集定义的字符和数字
    数字形 S9V99 数字形有三个类型, binary, packed decimal, zoned decimal. 数字编辑 -zz9.99 用于格式化数值输出 其他如DBCS类型, 浮点形在COBOL使用很少.
    对于字符,字母形都比较好理解, 所占字符数, 就是其定义的个数. 对于数字编辑形, 仅仅用于格式化数值, 不能进行数值运算和布尔比较. 计算字符数需要如下计算:
    eg: -zz99.99 所占字符数就是计算所有定义字符数, 1(-)+2(zz)+2(99)+1(.)+2(99)=8. 其中-号表示负数显示-号, 正数不显示+号. zz表示前导0, 就是不显示前面的0.
    eg: PICTURE Value of Data Edited
    -ZZ99.99 +123.45 123.45
    -ZZ99.99 -123.456 - 123.45
    我们详细说一下数值形,按照带不带符号,可以区分符号形, 非符合号形. 安装存储类型分为binary, packed decimal, zoned decimal.
    以下举例详细说明:
    zone decimal 一般称9型. eg 9(4)V99或者s9(4)V99, 每个9占一位,符号和V不占位. 示例就分别是6. 如果这个值是1234.56,在内存存储分别是’F1F2F3F4F5F6’, ‘F1F2F3F4F5C6’. 对于无符号,就是123456的EBCDIC码,对于带符号,对于正数,最后的F为C表示正,负数为D表示负.示例就是’C6’.
    packed decmial 也是COMP-3型. 9(4)V99 COMP-3或者s9(4)v99 comp-3型.存储长度计算为[x/2]+1,表示9的总个数(x)+1/2的取整, 原因是做了压缩存储,这个示范就是,如果这个值是123456, 在内存存储分别是’0123456F’和’0123456C’, 对于无符号,最后补个F表示无符号;对于带符号,如果是正数就是C,负数就是D.所有总长度就是[x/2]+1.
    使用的时候, 数值型之间都可以直接进行各类操作. 但需要注意的是, 如果对于未赋值的COMP-3型, 在赋值前做任何计算操作, 将会导致数据例外, 但对于zoned decimal就会才有缺省值,不会有数据例外.
    还有, 若是作为db2的hv, 就必须类型与DB2的类型匹配, 如果一个9型的来接受,也会造成错误.
    COMP型的变量常用于表示半个字或者整个字(主机一个字是4个字节), 比如半个字也就是16BIT, 对于有符合的数来说就是-32767~+32767, 所以可以用S9(5) COMP来表示, 当然也可以用S9(4) COMP来表示(因为S9(4)表示的范围是-9999到+9999, 一个字节存不下, 也需要2个自己存储), 对于一个字就是S9(8)或者S9(9).
    COMP 二进制数据类型
    COMP-1 单精度浮点型
    COMP-2 双精度浮点型
    COMP-3 内部十进制
    COMP-4 内部十六进制

         s9 (4)  comp    是小整数.2个数相当于一个字节,共占2个字节。
         S9(4) COMP-3   符号占半个字节,4个数字占2个半字节,一共占3个字节。
         S9(7) COMP-3   占多少个字节?
         COMP-3用内部十进制存储,S是占位的占4位,半个字节;7个数字每个4位。(4+7*4)/8=(4+28)/8=4个字节。
    
    展开全文
  • 计息是银行的一项重要业务,包括日常代理客户收、...为方便汇编语言读写,在VSAM文件存储的数据中,数据存放格式进行了特殊的定义。如日期存放采用X(3)型,01年03月15日,存入EBCD码为X‘010315’。在进行年度计息时...

    计息是银行的一项重要业务,包括日常代理客户收、付计算客户利息和年度计息等。目前,这些工作大多数是在IBM ES9000主机的SAFE应用系统平台上进行,该系统联机程序和联机计息程序是用IBM 370汇编语言实现的。为方便汇编语言读写,在VSAM文件存储的数据中,数据存放格式进行了特殊的定义。如日期存放采用X(3)型,01年03月15日,存入EBCD码为X‘010315’。在进行年度计息时,为了实现各种复杂的运算工作,一般采用COBOL语言来实现各种运算。而采用COBOL语言读取X(3)型数据时,读出的是字符型数据,不能直接进行运算,必须转换为COBOL数据类型的数据后才能进行相应处理。如刚才的X‘010315’,需要转换为内部十进制数据X‘0010315C’。本文介绍一种用COBOL语言实现字符型X(3)与内部十进制数据相互转换的方法。
     
    由X(3)型转换为内部十进制
    由于日期数据总是大于零,在COBOL语言的工作单元节定义变量DATE-FIRST后,再追加定义COBOL语言的最小数据单元X‘000C’,即十进制12。由于重定义DATE-CASE为DATE-CHANGE后,DATE-CHANGE是原日期数据的1000倍,于是要在过程部将DATE-CHANGE除以1000。
    首先,在COBOL程序WORKING-STORAGE SECTION. 中定义如下内容:
    WORKING-STORAGE SECTION.
    01 DATE-CASE.
    02 DATE-FIRST PIC X(3). 
    02 DATE-SIGN PIC 9(4) COMP VALUE 12.;定点二进制数 
    01 DATE-CHANGE REDEFINES DATE-CASE PIC 9(9) COMP-3. ;内部十进制数据
    01 DATE-HEX PIC X(3). ; 转换前数据
    01 DATE-DEC PIC S9(7)COMP-3 . ; 转换后数据
    然后,在过程部PROCEDURE DEVISION.中加入如下语句:
    PROCEDURE DEVISION.
    MOVE DATE-HEX TO DATE-FIRST .
    COMPUTE DATE-CHANGE = DATE-
    CHANGE / 1000. 
    MOVE DATE-CHANGE TO DATE-DEC.

    由内部十进制转换为X(3)型
    在进行相反的转换时,要消除因COBOL语言数据类型标志“C”引起的原日期数据前多加的一个0,所以需要将转换数据乘以10,再取出前6位数据即可。
    首先,在COBOL程序WORKING-STORAGE SECTION. 中定义如下内容:
    WORKING-STORAGE SECTION.
    01 WORK-DATE PIC S9(7) COMP-3.
    01 AA REDEFINES WORK-DATE.
    02 A1 PIC X(3).
    02 A2 PIC X(1).
    01 DATE-HEX PIC X(3). ;转换后数据
    01 DATE-DEC PIC S9(7) COMP-3.
    ;转换前数据
    然后,在过程部PROCEDURE DEVISION.中加入如下语句即可:
    PROCEDURE DIVISION. 
    MOVE DATE-DEC TO WORK-DATE。
    COMPUTE WORK-DATE=WORK-DATE*10.
    MOVE A1 TO DATE-HEX .
     

    转载于:https://www.cnblogs.com/maiqi/archive/2006/03/29/361759.html

    展开全文
  • COBOL_DB2_数据类型对应关系的介绍
  • cobol中常用的数据类型

    千次阅读 2010-05-06 10:20:00
    COBOL中使用PICTURE子句来定义数据类型. 主要的数据类型有以下几类, 我将分几篇文章分别讲述他们的使用和注意的地方.类型 示例 说明字母形 A(2) 只能使用26个字符和空格.字符形 X(2) 可以使用字符集定义的字符...

     COBOL中使用PICTURE子句来定义数据类型. 主要的数据类型有以下几类, 我将分几篇文章分别讲述他们的使用和注意的地方.

    类型       示例     说明

    字母形   A(2)     只能使用26个字符和空格.

    字符形   X(2)       可以使用字符集定义的字符和数字

    数字形   S9V99   数字形有三个类型, binary, packed decimal, zoned decimal.

    数字编辑 -zz9.99   用于格式化数值输出

    其他如DBCS类型, 浮点形在COBOL使用很少.

    对于字符,字母形都比较好理解, 所占字符数, 就是其定义的个数. 对于数字编辑形, 仅仅用于格式化数值, 不能进行数值运算和布尔比较. 计算字符数需要如下计算:

    eg: -zz99.99 所占字符数就是计算所有定义字符数, 1(-)+2(zz)+2(99)+1(.)+2(99)=8.   其中-号表示负数显示-号, 正数不显示+号. zz表示前导0, 就是不显示前面的0.

    eg:

    PICTURE         Value of Data     Edited Result

    -ZZ99.99           +123.45             123.45
    -ZZ99.99           -123.456         - 123.45

    至于详细的各类符合和数值编辑的使用, 将会专门写一章来讲述.


     

    我们详细说一下数值形,按照带不带符合,可以区分符合形, 非符合形. 安装存储类型分为binary, packed decimal, zoned decimal.

    以下举例详细说明,

    zone decimal   一般称9型. eg 9(4)V99或者s9(4)V99, 每个9占一位,符号和V不占位. 示例就分别是6. 如果这个值是1234.56,在内存存储分别是'F1F2F3F4F5F6', 'F1F2F3F4F5C6'. 对于无符号,就是123456的EBCDIC码,对于带符号,对于正数,最后的F为C表示正,负数为D表示负.示例就是'C6'.

    packed decmial 也是COMP-3型. 9(4)V99 COMP-3或者s9(4)v99 comp-3型.存储长度计算为[x/2]+1,[x/2]+1表示9的总个数+1/2的取整, 原因是做了压缩存储,这个示范就是4. 如果这个值是123456, 在内存存储分别是'0123456F'和'0123456C', 对于无符号,最后补个F表示无符合,对于带符合,如果是正数就是C,负数就是D.所有总长度就是[x/2]+1.

    使用的时候, 数值型之间都可以直接进行各类操作. 但需要注意的是, 如果对于未赋值的COMP-3型, 在赋值前做任何计算操作, 将会导致数据例外, 但对于zoned decimal就会才有缺省值,不会有数据例外.

    还有, 若是作为db2的hv, 就必须类型与DB2的类型匹配, 如果一个9型的来接受,也会造成错误.

    COMP型的变量常用于表示半个字或者整个字(主机一个字是4个字节), 比如半个字也就是16BIT, 对于有符合的数来说就是-32767~+32767, 所以可以用S9(5) COMP来表示, 当然也可以用S9(4) COMP来表示(因为S9(4)表示的范围是-9999到+9999, 一个字节存不下, 也需要2个自己存储), 对于一个字就是S9(8)或者S9(9).详细可以自己计算.

    展开全文
  • C6-COBOL 数据布局

    2020-09-22 14:49:25
    COBOL 数据布局 COBOL布局是每个字段的使用及展现价值的描述,以下是COBOL中使用的数据描述项: Redefines(重定义)子句 Renames(重命名)子句 Usage(用法)子句 Copybook Redefines(重定义)子句 重定义子句...
  • 提出了一种功能等价的类型封装和嵌套方法,可以有效地将COBOL数据描述映射到Java类型系统。该方法已在所开发的COBOL2Java翻译系统中进行应用,通过了近400万行的真实银行商用系统的测试。实验结果表明,此方法正确...
  • 问题:编译不出错,src运行到这句SQL的时候就会报错“JYP7161E 比较演算子两边的値数据类型不能进行比较。” 我尝试过把“G个人ID”的数据类型换成X型和S9型都是这个问题,请问大神如何解决?
  • 上篇说到Explanation,其实这是分析部分的重点,现在就开始说明一下COBOL数据格式常用的就那么几种,9、X、BIT、S9COMP3、9COMP,在用上篇的Analysis处理后,数据声明语句就被分割成了下面这种字符串数组的形式"05...
  • 4 COBOL 数据部之一

    2009-03-17 11:15:00
    一。数据部概述。... 数据的层次和层号:COBOL中把有从属关系的数据用层次(level)关系来描述。数据的层次结构是:记录--》组合项--》初等项。如,在前面READ语句中定义的 IN-FILE 文件具有如下结构:
  • COBOL

    2011-01-16 11:23:26
    COBOL(COmmonBusinessOrientedLanguage)——是数据处理领域最为广泛的程序设计语言,是第一个广泛使用的高级编程语言。在企业管理中,数值计算并不复杂,但数据处理信息量却很大。为专门解决经企管理问题,于1959年,由...
  • cobol 知识点集锦

    2014-07-14 14:05:56
    COBOL 知识点集锦(上) COBOL数据类型 计息是银行的一项重要业务,包括日常代理客户收、付计算客户利息和年度计息等。目前,这些工作大多数是在IBM ES9000主机的SAFE应用系统平台上进行,该系统联机程序和联机...
  • COBOL数据类型 S9(9) COMP十六进制存储方式。S9(4) COMP 以下 2 byteS9(5) COMP – S9(9) COMP 4 byteS9(10) COMP 以上 5 byte 需求:文件格式转换。 使得AIX db2 export数据和mainframe db2 unload数据一致。AIX...
  • 一般开发中,我们都使用COPY句导入记录的数据结构(以下简称COPY句),所以写这个小程序时肯定会涉及到COPY句的分析。所以挽起袖子,来做最基础的000100 03 レコード.000200 05 レコード種別 PIC 9(3).000300...
  • 数据类型整理 ...
  • cobol `

    千次阅读 2010-10-28 22:59:00
    它不仅是商业数据处理的理想语, 而且广泛用于数据管理领域,因此COBOL 语言也被称为“用于管理的语言”。 一. COBOL 语言的特点  最适于数据处理领域:算数计算量少而逻辑处理量多,输入输出量大...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,201
精华内容 2,480
关键字:

cobol的数据类型