ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:23.38KB ,
资源ID:26054965      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/26054965.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(cobol基本语法教学内容.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

cobol基本语法教学内容.docx

1、cobol基本语法教学内容cobol基本语法基本語法一、COBOL基本語法一、cobol的书写格式(每行)1、 前6列为序号区(一般不编辑)2、 第7列为标示列,仅可以写如下几个标示符。a. “” 注释符(注释当前行的代码)b “ 字符串连接符 3、第8列-11列为A区,包括以下内容。 a 部、节名。 b 层号01 4、第12列-72列为B区,过程部的程序必须写在B区中。 5、第72以后部分不能编辑。二、cobol的语法结构 (几大部分)1、 标示部(IDENTIFICATION DIVISION):提供程序的一般性文档说明。2、 环境部(ENVIRONMENT DIVISION): 提供程序

2、外部有关的项目。a. 配置节(CONFIGURATION SECTION).指定源计算机(SOURCE-COMPUTE).目标计算机(OBJECT-COMPUTE).b. 输入输出节(INPUT-OUTPUT SECTION). 文件的物理路径的定义。 方法二:(过程部中动态指定文件) SELECT FILE-LOG ASSIGN TO SELECT-FILE ORGANIZATION IS LINE SEQUENTIAL. 在数据部定义字符串变量SELECT-FILE,在文件FILE-LOG打开前动态指定文件路径。 3、数据部(DATA DIVISION)。 程序中的变量都在数据部中定义,C

3、obol中没有全局变量和局部之分。(变量的类型结构参照5.变量类型)a. 文件节(FILE SECTION) 给环境部定义的文件指定一个RECORD变量,读写文件用: FD FILE-LOG. 01 RECORD-LOG PIC X(2000). b. 工作存储节 定义程序中用到的临时变量。a) COBOL变量定义需要加层号(表示层次关系), 层号从01开始 如: 01 I PIC X(10). 组合项 如: 01 WORK-AREA. 05 NUM-1 PIC 9(09). 05 STR-1 PIC X(10). b) 层号依次排列顺序为:01 ,05,10,15,20,30 c. 连接节子

4、程序的参数的定义。 4、 过程部(PROCEDURE DIVISION) 程序的主体:程序的逻辑运算在此操作。a、 每个程序分为四大节(模块), 前处理(初始化变量,设定初始值等) 主处理(程序业务处理部分) 后处理(程序正常结束时的出口) 错误处理(程序异常结束时的出口)b、 对于子程序,PROCEDURE DIVISION 后应列出LINK节中定义的参数。如: PROCEDURE DIVISION USING LINK-INPUT-DATA LINK-OUTPUT-DATA.c、 程序结束。 主程序 STOP RUN. 子程序 GO BACK.5、变量类型COBOL程序的基本变量类型分为两

5、大类字符串型(X)、数值型(9)。a 字符串型 01 STRING-A PIC X(100). 100个字符长的变量,程序可以局部操作一个变量( STRING-A(start: length)如: MOVE ALL “X” TO STRING-A(2:10) (将变量STRING-A第2位开始10长度的内容全赋为”X”字符) b 数值型 种类类型说明备注DISPLAY9(m)无符号整数,每位占用一个字节,显示或输出到文件时,为零的数位显示”0”(1=m =18)例如: 01 I PIC 9(8).变量I占用8个字节。I = 1 时,输出显示时为00000001S9(m)带符号整数,每位占用一个

6、字节,符号位不占位,显示时,为零的数位显示”0”,符号显示在最后,输出到文件时,为零的数位显示”0”,符号丢失。(1=m =18)例如: 01 I PIC 9(8).变量I占用8个字节。I = 1 时,显示时为00000001+输出到文件时为00000001DISPLAY9(m)V9(n)无符号小数(小数点不显示,不占位)每位占用一个字节,显示或输出到文件时,为零的数位显示”0”(1=m + n =18)例如: 01 I PIC 9(4)V9(2).变量I占用6个字节,整数位4位,小数位2位。I = 1.1 时,输出显示时为000110S9(m)V9(n)带符号小数(小数点不显示,不占位)每位

7、占用一个字节,符号位不占位,显示时,为零的数位显示”0”,符号显示在最后,输出到文件时,为零的数位显示”0”,符号丢失。 (1=m + n =18)例如: 01 I PIC 9(4)V9(2).变量I占用6个字节,整数位4位,小数位2位。I = 1.1 时,显示时为000110+输出到文件时为000110Comp,comp-5,comp-39(m) comp-5无符号整数,数据以二进制方式存贮,显示和9(m) 一样,不能出力(1= m =18) S9(m) comp-5有符号整数,数据以二进制方式存贮,显示和S9(m) 类似,只是符号在前面,不能出力,(1= m = 18) 9(m)v9(n)

8、 comp-5无符号小数,数据以二进制方式存贮,显示和9(m)v9(n) 一样,不能出力(1= m + n =18) S9(m)v9(n) comp-5有符号整数,数据以二进制方式存贮,显示和S9(m)v9(n) 类似,只是符号在前面,不能出力,(1= m + n 大于小于=等于=NOT =不等于注: 判断字符串能否转换为数字。NUMERIC NOT NUMERICIS NOT NUMERIC11、PERFORM 语句 PERFORM XXX-RTN. 调用子节,直到遇到第一个只包含EXIT语句的段中止,回到该调用语句的下一条语句。 EXIT只与它搭配有效。 所以节的定义规定如下: XXX-R

9、TN SECTION. 语句块 XXX-EXT. EXIT. PERFORM XXX-RTN N TIMES. 循环调用子节N次 PERFORM XXX-RTN UNTIL N 30. 循环调用子节,直到N 大于30。PERFORM UNTIL 表达式 语句 END-PERFORM. 循环调用语句块,表达式判断在语句块前进行。 PERFORM VARYING X FROM A BY B UNTIL X 12 语句 END-PERFORM. 循环调用语句块,相当于FOR 循环。12、EVALUATE 语句EVALUATE 变量、常量、表达式 WHEN ANY TRUE FALSE (NOT) 常

10、量1 THRU (THROUGH) 常量2 WHEN OTHER .END EVALUATE ANY :任何变量、常量值 TRUE、FALSE :关系表达式的结果 (NOT) 常量1 THRU (THROUGH) 常量2: 值(不)在常量1和常量2 构成的闭区间 另外,在WHEN 后面可以包含简单的关系表达式。 如: EVALUATE A WHEN = 10 EVALUATE B WHEN = 1 OR = 2 OR = 3 语句 WHEN OTHER 语句 END-EVALUATE WHEN OTHER 语句 END-EVALUATE. 13、另外,不同的COBOL系统提供了不同内部函数,建

11、议少用内部函数,以下提供几个通用的内部函数 ORD 取得字符的ASICII码 如: MOVE FUNCTION ORD (“A”) TO NUMBER. UPPER-CASE 字母小写转换成大写 如: MOVE FUNCTION UPPER-CASE (STRING(START:1) TO STRING(START:1) LOWER -CASE 字母小写转换成大写 如: MOVE FUNCTION LOWER-CASE (STRING(START:1) TO STRING(START:1) REVERSE 对字符串中所有字符进行倒序 如: MOVE FUNCTION REVERSE(STRIN

12、G-1) TO STRING LENGTH 取得变量的定义长度,如: COMPUTE LEN = FUNCTION LENGTH(STRING)二、PRO*COBOL基本語法 COMPLA使用的PRO*COBOL是ORACLE公司提供的在COBOL程序中嵌入SQL语句的一种方法,使得程序方便地访问操作ORACLE数据库;PRO*COBOL程序经过ORACLE提供的预编译器预编译生成中间COBOL程序后,程序中所有的SQL语句直接调用ORACLE库函数,再经过COBOL编译器同一般COBOL程序一样编译生成各种可执行模块,由于程序中直接调用ORACLE库函数,所以它们访问操作ORACLE数据库的

13、速度很快,基本语法如下。一、特点。 所有的SQL或数据库操作相关语句均被括在” EXEC SQL” 和 “END-EXEC”之间,并且它们只能包含一条语句,如: EXEC SQL SQL语句 END-EXEC. 所有访问操作数据库的变量都必须是主变量。 “EXEC SQL” ,”END-EXEC及其包含的语句都必须从12列或12列以后开始。三、 数据部内容。 引用两个对象SQLCA, ORACA.EXEC SQL INCLUDE SQLCA END-EXEC.EXEC SQL INCLUDE ORACA END-EXEC. 主变量定义。 EXEC SQL BEGIN DECLARE SECTI

14、ON END-EXEC. (主变量定义开始) EXEC SQL END DECLARE SECTION END-EXEC.(主变量定义结束) 主变量都必须定义在这里,具体定义和一般的COBOL变量一样。 VARCHAR型变量(可变长度). 该变量定义就是在X型变量后加关键字VARYING.如: 05 STRING PIC X(100) VARYING. 它实际包含两部分(预编译后的中间COBOL程序可见) 05 STRING. 06 STRING-LEN PIC S9(4) COMP. 06 STRING-ARR PIC X(100). STRING-LEN 表示字符串的实际长度,STRING

15、-ARR 表示字符串的实际内容。 SQL语句中,只能用STRING. 从表中得到值时,STRING-LEN 自动被赋值。 向表中写入值时,STRING-LEN 需要手工指定长度,SQL将STRING(1:STRING-LEN)部分有效字符串写到表中。 定义主变量时,引用COPY句: EXEC SQL INCLUDE WSIT1101.cpy END-EXEC. 游标的定义可以放在数据中。四、 数据部中SQL语句的基本语法1)、错误扑获 ORACLE错误扑获是一个全局性的标志,在一个事务(在PRO*COBOL中,ORACLE事务以COMMIT或ROLLBACK为分割点)中,后一个错误扑获会覆盖前

16、一个错误扑获设置。 遇到SQL警告(SQLCODE 0 )继续EXEC SQL WHENEVER SQLWARNING CONTINUE END-EXEC. 遇到SQL错误(SQLCODE 0 )继续EXEC SQL WHENEVER SQLERROR CONTINUE END-EXEC. 遇到SQL错误(SQLCODE 0 )跳转EXEC SQL WHENEVER SQLERROR GOTO ORA-ERROR END-EXEC. 2)、 数据连接 数据库连接在一般的项目开发中用不到,只用于测试程序中(不连接外部数据库) 方式一(USERNAME 和PASSWORD分开,如:USERNAME

17、 = “OPS$LAPROC51” PASSWORD = “LAPROC”)EXEC SQL CONNECT :USERNAME IDENTIFIED BY :PASSWDEND-EXEC. 方式二(USERNAME 和PASSWORD合并,如:UID = “OPS$LAPROC51/LAPROC”)EXEC SQL CONNECT :UIDEND-EXEC.3)、 静态SQL语句 单条记录的检索EXEC SQL SELECT ENAME, SAL, COMMINTO :EMP-NAME, :SALARY, :COMMISSION:COMM-INDFROM EMPWHERE EMPNO = :

18、EMP-NUMBEREND-EXEC. 注: 上例中的COMM-IND为指示变量,在检索操作中每个接受主变量都可指定一个指示变量(9(04) COMP型),它用来判断主变量是不是接受到一个空值(NULL)(主变量不能接受空值),当指示变量为-1时,表示对应的主变量应该接受到一个空值(主变量自己表示不出来) 多条记录的检索(CURSOR 游标) 游标的定义 EXEC SQL DECLARE CUR_NAME CURSOR FOR SELECT MSG_CD , MSG_1,MSG_2 FROM WWWTMSG1 END-EXEC. 游标的定义:将SQL查询语句声明为一个游标,不调用ORACLE库

19、函数,不会更新SQLCODE的值。 游标的打开 EXEC SQL OPEN CUR_NAME END-EXEC. 游标的打开:用游标定义的SQL语句检索数据库,将检索结果生成一个游标对象,(此时游标指针在第一条记录前一位置,无法确定游标中有没有记录)。 游标中记录的抽取 EXEC SQL FETCH CUR_NAME INTO : HST-MSG-CD , : HST-MSG-1,:HST-MSG-2 END-EXEC. 游标中记录的抽取:将游标中的记录抽取到相应的主变量中,一次抽取一条。 游标的关闭 EXEC SQL CLOSE CUR_NAME END-EXEC. 游标的关闭: 将现有的游

20、标对象释放,游标再次打开前,必须关闭。 更新 EXEC SQL UPDATE WWWTMSG1 SET MSG_1 = : WK-MSG-1, MSG_2 = : WK-MSG-2 WHERE MSG_CD = : WK-MSG-CD END-EXEC. 删除 EXEC SQL DELETE FROM WWWTMSG1 WHERE MSG_CD = : WK-MSG-CD END-EXEC 插入 EXEC SQL INSERT INTO WWWTMSG1(MSG_CD, MSG_1, MSG_2) VALUES (:WK-MSG-CD, :WK-MSG-1, :WK-MSG-2) END-EX

21、EC 事务的提交 方式一(释放连接) EXEC SQL COMMIT WORK RELEASE END-EXEC. 方式二(不释放连接) EXEC SQL COMMIT WORK END-EXEC. 事务的回滚 方式一(释放连接) EXEC SQL ROLLBACK WORK RELEASE END-EXEC. 方式二(不释放连接) EXEC SQL ROLLBACK WORK END-EXEC. 典型的SQLCODE值 SELECT 1403 : 没有检索到记录 FETCH(游标中记录的抽取) 1403 : 游标指针FETCH到游标的尾部 UPDATE 1403 : 没有更新的记录 -60

22、: 死锁 -2049: 由于死锁导致系统超时 DELETE 1403 : 没有删除的记录 -60 : 死锁 -2049: 由于死锁导致系统超时 INSERT -1 : 插入的记录已存在 -60 : 死锁 -2049: 由于死锁导致系统超时 典型ORACLE内部变量 SQLCODE : SQL语句运行后得到的返回值 SQLERRMC: SQL语句运行后得到的返回信息 SQLERRD(3): SQL语句运行处理的记录条数 4)、动态SQL语句 动态一(直接执行SQL字符串) 方式一 MOVE INSERT INTO DYN1 VALUES (TEST) TO DYNSTMT.EXEC SQL EX

23、ECUTE IMMEDIATE :DYNSTMT END-EXEC. 方式二EXEC SQL EXECUTE IMMEDIATE INSERT INTO DYN1 VALUES (TEST)END-EXEC. 动态一:只用于没有任何参数和返回结果的SQL语句操作 动态二(用于非检索SQL语句) 方式一(带参数)MOVE INSERT INTO EMP (EMPNO, DEPTNO) VALUES (:V1, :V2) TO DYNSTMT-ARR. EXEC SQL PREPARE S FROM :DYNSTMT END-EXEC. EXEC SQL EXECUTE S USING :EMPNO, :DEPTNO1 END-EXEC. 其中V1,V2为形参,S为PREPA

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1