JCL.Cobol.DB2.CICS面试题

更新时间:2024-04-08 15:52:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

JCL:

1 简单描述一下DISP的使用,它有哪些参数?

DISP 参数用来告诉系统要使用的数据集的状态是什么并且告诉系统当本作业步执行完毕后如何处理这个数据集。你可以为作业步正常结束和非正常结束时分别指定不同的处理方法。 DISP= ( [NEW] [,DELETE ] [,DELETE ] )为空时也表示这个。

[OLD] [,KEEP ] [,KEEP ] [SHR] [,PASS ] [,CATLG ] [MOD] [,CATLG ] [,UNCATLG] [, ] [,UNCATLG]

2 什么是PROCEDURE,有哪几种PROCEDURE,简述区别 有2中PROCEDURE, 一种是CATALOG的PROCEDURE,是把过程的JCL语句写在一个编目的数据集里,该数据集必须是PDS 或PDSE里的一个成员,能够同时被多个JCL 调用。另一种是INSTREAM的PROCEDURE,流内PROCEDURE,写在一个JCL里面,以PROC开头,以PEND字句结束。

3.什么是GDG数据集,GDG数据集的每一代数据集是否可以是不同类型的? 定义GDG数据集有3个重要的参数: LIMIT NOEMPTY SCRATCH 各表示什么含义? 定义GDG BASE之后要必须定义什么?

答:GDG数据集是一组名字相似,时间和功能相关的数据集。 GDG数据集是MVS中的世代数据集,通过IDCAMS来创建。

GDG数据集的每一代可以是不同类型的。

3个重要的参数 LIMIT表示这个世代数据集最多可以有多少代; NOEMPTY表示不清空, SCRATCH表示最老的一代是被删除掉的。定义GDG BASE之后必须定义GDG DSCB才能生效。

4. COND参数是什么意思? 如果我需要作业步3,只在作业步2返回码是0或者4的时候才执行,如何写COND参数? 答: COND参数是CONDITION参数,表示什么情况下作业步被执行/不被执行。 COND=(4,LT,STEP2)

5.IEBCOPY与IEBGENER有什么区别?IEFBR14是起什么作用的?

IEBCOPY:对分区数据集进行拷贝、压缩或合并

IEBGENER:拷贝顺序数据集,或将顺序数据集转为分区数据集 IEFBR14实际是一个空程序,什么也不做,只是返回返回码0,但是使用它可以进行JCL 语言的各种处理,如DD 语句中创建数据集等。

6用哪一个UTILITY去定义VSAM文件,简介一个定义VSAM文件的一些参数

DEFVSAM EXEC PGM=IDCAMS

DEFINE CLUSTER(NAME(OCB4D4.EX0801.VKD44N) VOL(TSTCC2) - RECSZ(48 48) REC(1000 1000)

KEYS(10 0))

7.定义VSAM的时候是否可以指定VSAM分配的大小,通过哪个参数指定?

答:通过用IDCAMS来定义VSAM文件,通过指定CYL参数来指定VSAM分配的大小,在定义VSAM的DATA部件的时候指定的VSAM文件的大小

8.定义VSAM的时候,参数 KEYS(9 12) 表示什么意思? (6 0) 答: KEYS(9,12)表示从记录的12列开始,数9个长度作为VSAM文件的KEY. 比如 KEYS(6 0),就是指从文件开始的6个长度的字段作为KEY

9.SPACE参数如何使用? 比如你要建一个PDS数据集,SPACE=(TRK,(1,1,1)),3个1各表示什么?

第一个 首次分配;第二个 扩展分配;第三个 目录区大小 10.要建立一个PDSE数据集,记录格式是定长不分块,记录长度是120,块大小系统选定,DCB参数如何写,为了指明建立的是PDSE还要写哪个参数?

答: DCB = ( RECFM = F, LRECL = 120, BLKSIZE = 0) ,还要指定 DSNTYPE = LIBRARY 参数才能表示是分配的是PDS-E数据集。

11.如何让系统指定BLKSIZE, 系统指定有什么好处? 答:系统指定BLKSIZE的话,需要在有RECFM参数,LRECL参数的情况下,指定BLKSIZE = 0, 或者不指定 BLKSIZE参数,就是

系统指定BLKSIZE参数。

系统指定BLKSIZE的话,可以最优化块大小的分配,节省系统空间。

12.PDSE和PDS有什么区别?

PDS删除的成员空间不会自动释放,压缩 才能使用该存储空间。而PDSE的删除后自动释放,不可压缩。 PDS可能有目录缺陷而PDSE没有

13.在一个JCL作业中有多个作业步,如何从其中的一个作业步开始执行作业,用哪个参数指定?

答: 可以通过在JOB语句里面指定RESTART = STEP5 参数是JCL直接从作业步 5 开始执行。

14. SPACE参数中的RLSE参数是起到什么作用?

答: RLSE参数表示RELEASE,表示系统自动释放掉分配给数据集的但是没有被使用的空间。

15.JCL中定义的记录格式有哪些? 分别表示什么含义? FB定长分块 F定长不分块 VB变长分块 V变长不分块 和 U未定义,存放的是二进制代码。

16. STEPLIB DD 语句, JOBLIB DD 语句,JCLLIB DD 语句 分别起什么作用?

答: JCLLIB用在PROCEDURE中,指定JCL中用到的PROCEDURE放在哪里;

JOBLIB和STEPLIB都是用来自定JCL中用到的

PROGRAM放在哪里,

如果单独有JOBLIB或 STEPLIB的话就是去JOBLIB或STEPLIB后面指定的数据集去找PROGRAM。

如果JOBLIB和STEPLIB都有的话,那么JOBLIB会被忽略,去STEPLIB里面去找

如果JOBLIB和STEPLIB都不指定的话,就是去SYS1.LINKLIB里面去找。

17. SORT UTILITY是用来做什么的, 如果我想对记录中的第二个字段进行字符升序排序,这个字段的起始位置是4长度是19,如何写 SORT的控制语句?

答: 主要是对文件中的记录进行排序,最常见的参数是SORT FIELDS,按照题目要求这样的SORT语句应该这样写: SORT FIELDS = (4,19,CH,A)

DFSORT 是IBM 的Data Facility 家族的一员,用来对数据集进行排序、拷贝和合并。 控制选项:

SORT:指定对数据集进行排序操作;MERGE:指定对数据集进行合并操作;COPY:指定对数据集进行拷贝操作; FIELDS:指定排序键值的信息,格式为

FIELDS=(起始位置,长度,升降序[,起始位置,长度,升降序]),FORMAT=数据类型

(起始位置,长度,数据格式,升降序[,起始位置,长度,数据格式,

升降序])

其中位置和长度都是以字节为单位,顺序可选的有A:升序,D:降序,E:使用用户出口例程定序; FORMAT=指定键字的类型,可选项有CH:字符类型,PD:压缩十进制型,BI:二进制型,AC:ASCII 码型。

18.通过JCL怎么传递参数?

PARM用于向本作业步执行的程序传递变量信息。该程序必须有相应的指令接收这些信息,并使用它们。 格式:

PARM[.过程步名]= 子参数

PARM[.过程步名]=( 子参数, 子参数) PARM[.过程步名]=(‘子参数’, 子参数) PARM[.过程步名]=’子参数, 子参数’

包括所有的逗号、撇号以及括号在内,所有子参数的总长度不得超过100 个字符。当某

子参数中含有特殊字符或空格时,可以将该子参数用撇号括起来,在其它子参数一起用括号

括起来,或将所有在参数用撇号括起来。 子参数:包含传递给程序的变量信息。 例1.

//RUN3 EXEC PGM=APG22,PARM=’P1,123,P2=5’

在本例中,系统将参数P1、123 及P2=5 传递给程序APG22。

例2.

// STP6 EXEC PROC=ASFCLG,PARM.LKED=(MAP,LET) 在本例中系统将MAP、LET 传递到过程ASFCLG 中名为LKED 的过程步。

19. 如何定义KSDS的次键(sub-index)?

次键本身也是一个KSDS。它提供了另一种方法访问VSAM KSDS和ESDS数据集。 定义次键的步骤如下: 1) 定义CLUSTER。 2) 装入数据。

3) 用DEFINE ALTERNATEINDEX命令定义次键。 4) 用DEFINE PATH命令将次键与CLUSTER相关联。 5) 用BLDINDEX命令建立次键。也就是在索引中装入数据。

VSAM用3个编目项描述一个次键: -一个次键项描述次键是一个KSDS。 -一个数据项描述次键的数据部件。 -一个索引项描述次键的索引部件。

定义次键需要指定的信息与定义一个KSDS类似。如果次键允许许多不唯一的键,则RECORDSIZE必须足够大。在定义次键时,如指定了UPGRADE属性,则VSAM数据集改变时,次键自动改变。

例 假定你有一个数据集叫PAYROLL.MASTER,其主键是雇员名字,你想建立一个次键。则: 1) 定义次键:

DEFINE ALTERNATEINDEX (NAME(PAYROLL.DEPT.AIX) RELATE(PAYROLL.MASTER) VOLUMES(AIX001) UPGRADE)

DATA (NAME(PAYROLL.DEPT.AIX.DATA) TRACK (5 5)

RECORDSIZE(200 2096) KEY (7 65) NONUNIQUEKEY)

INDEX (NAME(PAYROLL.DEPT.AIX.INDEX) IMBED) 2) 定义路径:

DEFINE PATH(NAME(RAYROLL.DEPT.PATH) PATHENTRY(PAYROLL.DEPT.AIX) UPDATE)

3) 在索引中装入数据:

BLDINDEX INDATASET(RAYROLL.MASTER) OUTDATASET(PAYROLL.DEPT.AIX)

以后你在使用这个数据集时,如果你在JCL中的DD语句如下:

//DD1 DD DSN=PAYROLL.MASTER,DISP=SHR 则表示你使用主键访问该数据集。 如果你在JCL中的DD语句如下:

//DD1 DD DSN=PAYROLL.DEPT.AIX,DISP=SHR 则表示你使用次键访问该数据集。 20.为KSDS文件建立交替的索引? //DS580416 EXEC PGM=IDCAMS,

//PRMINDEX DD DSN=DS.DS580412.AGGR,DISP=SHR //ALTINDEX

DSN=DS.DS580412.AGGR.AIX,DISP=SHR //IDCUT1

DD DD

DSN=DS.DS580416.TEMP1,DISP=OLD,UNIT=IDMP, // VOL=(,,,,SER=(PDS001)) //IDCUT2

DD

DSN=DS.DS580416.TEMP2,DISP=OLD,UNIT=IDMP, // VOL=(,,,,SER=(PDS001)) //SYSPRINT DD SYSOUT=* //SYSIN DD *

BLDINDEX INFILE(PRMINDEX) OUTFILE(ALTINDEX) /* COBOL:

1.comp型1-4个9占2位。5-9个9占4位 。10-18个9占8位。 2.第66,77,88层是用来做什么的? 66 重定义。77 无子层。88 条件判断

3.COBOL中有哪4个部? 都是必须的吗? DATA DIVISION可以省略不写吗? ENVIRONMENT DIVISON 可以省略不写么? 标识部 环境部 数据部 过程部

4.批次程序如何引用文件?要在程序中加入哪些描述语句? ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT IN-FILE ASSIGN INDD ORGANIZATION IS SEQUENTIAL ACCESS MODE IS SEQUENTIAL FILE STATUS IS IN-FILE-STATUS. SELECT OUT-FILE ASSIGN OUTDD ORGANIZATION IS SEQUENTIAL ACCESS MODE IS SEQUENTIAL FILE STATUS IS OUT-FILE-STATUS. DATA DIVISION. FILE SECTION. FD IN-FILE. 01 IN-RECORD PIC X(80).

FD OUT-FILE. 01 OUT-RECORD PIC X(80).

4.COMP和COMP-3,DISPLAY各表示什么意思?

S9(4) COMP-3占多少字节? S9(7)V9(2) DISPLAY 占多少字节?

COMP是二进制,COMP-3是压缩十进制,DISPLAY是十进制。 S9(4) COMP-3占3个字节 S9(7)V9(2) DISPLAY 占9个字节

5.如果VSAM中的字段格式是 S9(7)V9(2) comp-3, 如何定义一个数据来接收这个数据并DISPLAY出来? 答:通过定义 9(7).9(2) 来接收这个变量。

6.S9(4) COMP-3在内存中占多少字节? -1234在内存中是如何存储的?

答: S9(4) COMP-3在内存中占3个字节, -1234在内存中表示为 01 23 4D (16进制表示) ( 00000001 00100011 01001101) (2进制表示)

7. S9(7) COMP在内存中占多少字节? MOVE 1234 TO VAR, DIS PLAY 之后VAR1 显示结果是 (VAR1的PIC字句是 S9(7) COMP-3)

答:S9(7) COMP 在内存中占4个字节, MOVE 1234 TO VAR1之后, DISPLAY VAR1显示为 0001234.

8.COBOL程序读取文件记录,如何判断已经读到最后一条记录

100-READ.

READ FILE1 INTO FILE-REC AT END….. NOT AT END…… …..

GO TO 100-READ.

9.COBOL中如何调用子程序?如何向子程序传值?

使用CALL,XTCL,LINK来调用子程序,其中call使用在batch程序中,XCTL,LINK使用在CICS中。使用call和LINK调用子程序后,子程序结束后仍回到主程序。而XTCL后,子程序结束后不返回。

使用通讯区在子程序间传值。

10.举例说明如何使用 REDEFINES, 要注意什么? REDEFINES是用来重定义,数据长度和类型都可以不同 05 AAA PIC X(6) 05 BBB REDEFINES AAA. 10 B-1 PIC X(4). 10 B-2 PIC X(2)

11.文件打开的方式有哪几种?各表示什么? INPUT 输入 从该文件中读取数据 OUTPUT 输出 把数据输出到文件中 I/O 即可输入又可输出

EXTENT 扩展

12.你是如何调试批次程序的?

在SDSF里面看作业的返回码,进入JES的作业信息查看是哪一个作业步发生了错误,返回码是多少,然后去响应的作业步里面查看出错信息

如果可能是变量错误的话,用DISPLAY 跟踪 13.S0C7是什么错误,如何解决?

S0C7-may be due to: 1. Numeric operation on non-numeric data; 2. Un-initialize working-storage; 3. Coding past the maximum allowed sub script.

数据类型不匹配。通过OFFSET后面的十六进制的数。 14.在线程序与批次程序有何区别?根本区别: 在线程序需要用到cics,而批次程序不需要

15.COBOL读取文件记录的语句,分别描述一下顺序和索引文件的读取

READ INTO AT END NOT AT END

READ INTO KEY IS INVALID KEY NOT INVALID KEY 16.如何定义一个数组?比如学生记录里面课程有8门 01 STUDENT.

05 NAME PIC X(10).

05 COURSE PIC X(4) OCCURS 8 TIMES. OCCURS不能定义在01层。

17. VSAM文件的组织形式有哪些?

ESDS:Entry Sequential Data Set; 顺序数据集;

特点是:A,记录只能增加在文件尾部;B,记录可被修改但长度不能被改变,记录不能被删除;C能根据相对寻址的方式进行操作。

RRDS:Relative Record Data Set; 相对记录数据集;

特点是:A,在数据集中包含许多小的数据块,这些可能有数据或为空;B,记录可能是固定的或可变的;C,肯顺序或直接的存取,根据相对的记录数方式操作。

KSDS:Key Sequential Data Set; 索引数据集;

特别是:A,记录能进行顺序或直接的读写;B,记录能被新增、修改、删除无限制,记录由索引方式来组织;C,按键值的方式进行操作。

LDS 线性存储,数据没有分界线。 18..文件的访问方式有哪些? SEQUENTIAL 顺序 RANDOM 随机

DYNAMIC 动态(有条件)

19.REDEFINES的起什么作用,请简述REDEFINES使用时要注意的地方

答: REDEFINES表示重定义,为同一个内存重新定义一个变量的名字。

例如: 01 A PIC S9(7)V9(2) COMP-3. 我们用B 来REDEFINES A 就用如下语句:

01 B REDEFINES A PIC X(5). 例如: 01 A.

03 A1 PIC X(6). 03 B1 REDEFINES A1. 05 B11 PIC X(4). 05 B12 PIC 99.

03 C1 REDEFINES A1 PIC 9(6).

1.数据名2与数据名1的层号必须相同。REDEFINES子句不能用于88层和66层。

2.用REDEFINES子句的描述体应紧跟在被重新定义的数据项的描述之后,中间不能插入其他项的描述说明。 3.可以多次重定义,但必须紧跟出现,而且要求使用最初定义的数据名。

4.REDEFINES子句不能用于文件节的01层中,因为文件节中01层描述的是记录,但工作单元节中的01层是可以用REDEFINES子句重新定义的,因为这里的01层不是指输入输出文件的记录,而是指组合项。

5.用REDEFINES子句可以改变数据的结构,但两个数据名的长度应相同。

6.内存中的值为数据名1和数据名2共享。也就是说,重定

义后两个数据名的名称和两种数据结构同时存在,都有效。程序中可使用其中任何一个。他们在内存中为同一段存储单元。如果改变了内存内容,则二者的值都因而改变。 7.重定义子句所在的数据描述体中不能使用初值子句赋初值

20.如何定义和使用文件 ? 如何把COBOL程序中的文件关联到实际的文件上?

答:在COBOL程序的Environment division段里的INPUT-OUTPUT SECTION FILE-CONTROL进行文件的定义,包括内部文件名,外部文件名,文件的格式以及访问方式 在 Data Division里的 FILE SECTION里面进行 FD 进行文件记录变量的描述

在 运行程序的JCL里面通过指定PGM = 程序名, 和相同的外部文件名来关联程序和实际的物理数据集。 21. COBOL中如何做循环,请描述下常用的循环语句 答:COBOL中主要通过 PERFORM做循环; PERFORM有3种主要的格式: PERFORM 100-PROC X TIMES ; PERFORM 100-PROC UNTIL X > 10;

PERFORM 100-PROC VARYING X FROM 1 BY 1 UNTIL X > 10; GO TO 语句。

22.如何从VSAM中的一条记录开始顺序读取以下的记录 答: 通过指定KEY值来指定从文件的哪个KEY开始读记录, 用COBOL语句: START FILE1 KEY IS EQUAL TO 变量 END-START

READ FIEL1 NEXT RECORD INTO 文件记录变量 END-READ

从文件头中间开始CICS STARTBR, READNEXT or READPREV, then ENDBR. 读取首条记录,给STARTB->READNEXT; 从文件尾读取,给STARTB->READPREV.

23. INSPECT 语句,简单说一下INSPECT … TALLYING & INSPECT … REPLACING

答: INSPECT 变量 TALLYING N FOR ALL ‘ ‘ 表示统计变量中的空格数,把统计结果给N.

INSPECT 变量 REPLACING ALL SPACE BY ‘.’ 表示把变量中的所有空格,用 . 替换掉。

24. INITIALIZE 语句作用是什么,INITIALIZE VAR,如果VAR是字符型,那么DISPLAY VAR后是什么结果,如果VAR是数值型,那么DISPLAY VAR后是什么结果?

答: INITIALIZE 语句是用来初始化变量内存的语句, 如果变

key

值赋

HIGH-VALUE,

key

值赋

LOW-VELUE,

量是字符型/字母型就初始化为 空格, 如果是数值型就都初始化为 0

25. CORRESPONDING 是什么作用在COBOL中,如何使用? 答:相应变量传送,通过用 MOVE CORRESPONGDNG 组合项A TO 组合项 B , ( 组合项 A 和 组合项 B 里有同名的子项的定义)

26. 描述一下读文件的全过程。

INPUT-OUTPUT SECTION的FILE-CONTROL中,用SELECT语句将外部文件和内部文件联系起来;在FILE SECTION中,通过FD定义文件的记录格式等;在PROCEDURE DIVISION中,首先OPEN INPUT/OUTPUT/I-O/EXTEND,READ或START-〉READ NEXT;读完之后CLOSE。判断文件读取状态使用FILE STATUS。

10 读取顺序数据集时读不到或者已经读到文件尾; 22 写Indexed文件的时候,存在关键字重复的记录; 35 数据集不存在;

37 用数据集不支持的方式打开文件(An OPEN statement with the INPUT, I-O, or EXTEND phrase was attempted on a non-optional file that was not present.);

39 程序定义与文件属性不匹配。记录格式不匹配; 92 逻辑错误,没先读就写; S0C4 读文件时文件没有打开。

27.如何定义一个VSAM文件在CICS中. CEDA DEF FILE(file-name) G(group)

指定 DSN 和文件的操作( ADD, READ, WRITE, UPDATE and DELETE).

28项目过程,也就是从你接到程序文档到提交程序这中间你所要完成的一切步骤。

看懂程序文档,弄清楚程序流程,划分功能模块,编码,分布测试,整体测试。

29在DD语句中,DCB参数的含义?

Use the DCB parameter to complete during execution the data set information in the data control block (DCB).

DSORG specifies the organization of the dataset, sequential or partitioned.

RECFM specifies the record format of the dataset, FB, F, V, VB or other.

DSNTYPE specifies the type of the dataset, PS, PO, or LIBRARY. BLKSIZE specifies the block size of the dataset, can be default. LRECL specifies the record length of the dataset. 30.开发周期的描述?

A开发前,对项目做详细的问卷调查和可行性分析,要产生可行性研究报告和行动方案等文档;

B开发期间,对项目进行需求分析,软件设计,编码,测试,并

产生需求分析规格说明书、概要设计规格说明书、详细设计说明书(包括MAP设计,数据库设计,算法设计,程序逻辑设计,程序流程图等)、项目开发计划书、测试需求说明书、测试设计说明书、项目测试计划书、测试报告书、项目总结报告、用户手册等;

C开发后,对项目进行维护和客户服务。 DB2:

1.主键和唯一索引的区别?

主键一定是唯一性索引,唯一性索引并不一定就是主键。一个表中可以有多个唯一性索引,但只能有一个主键

所谓主键就是能够唯一标识表中某一行的属性或属性组,一个表只能有一个主键,但可以有多个候选索引。因为主键可以唯一标识某一行记录,所以可以确保执行数据更新、删除的时候不会出现张冠李戴的错误。主键除了上述作用外,常常与外键构成参照完整性约束,防止出现数据不一致。数据库在设计时,主键起到了很重要的作用。

主键可以保证记录的唯一和主键域非空,数据库管理系统对于主键自动生成唯一索引,所以主键也是一个特殊的索引。 2.Plans 和packages的作用?

一个CICS的应用程序访问DB2的数据时,必须要做一些相应的准备工作,涉及DB2的是bind墓獭ind是产生一个plan的

DB2里面的表。

PLAN & PACKAGE是存放带有访问路径经过绑定后的DBRM,PACKAGE的优势在于将存放SQL的DBRM粒化,以更小的单位进行存放SQL。

8.为什么要用游标, 在程序中如何使用?

从表中SELECT记录时,满足条件的记录不止一条时就需用到游标。

1 DECLARE, 2 OPEN 3 FETCH 4 CLOSE 9.SQLCODE = -811 表示什么错误? 如何解决 满足条件的记录不止一条,用游标。

10.SQLCODE = -803 表示什么错误? 如何解决

在唯一索引的惟一键处UPDATE INSERT了已经存在的数据,使惟一键不唯一便会出现该错误。 11. -805是什么错误?如何解决?

答: -805表示程序的可执行模块和PLAN不是同一个编译产生的结果。我们需要通过CEMT S PROG(PROGRAM) NEW 来刷新程序,或者是重新进行绑定。

12.请简述COPY BOOK 和 EXEC SQL INCLUDE 的区别 答: COPY BOOK中的内容在COBOL 编译的时候可以被识别,COPY BOOK里的内容可以被展开,但是EXEC SQL INCLUDE只能在DB2预编译的时候被展开,COBOL编译器不能识别。 13. -911返回码表示什么意思?

911表示由于资源抢夺,当前工作单元UOW已经回滚。发生死锁。

14. DB2有那些OBJECT? (table space data base table view) DATA BASE ; TABLE SPACE ; TABLE; VIEW; INDEX; KEY 等 14.DB2为什么要 INCLUDE SQLCA?

An SQLCA is a structure or collection of variables that is updated after each SQL

statement executes. An application program that contains executable SQL

statements must provide exactly one SQLCA. There are two exceptions:

v A program that is precompiled with the STDSQL(YES) option must not provide an SQLCA

v In some cases (as discussed below in In Fortran), a Fortran program must

provide more than one SQLCA.

The description of the SQLCA that is given by INCLUDE SQLCA is shown for each of the host languages.

CA就是communication area ,最主要的内容就是sqlcode和SQLSTATE,还有别的,DB2 实时更新这个区域,可以用程序

访问里面的变量,需要在程序的开始声明这个区域。(就是一个区域,每次执行一个SQL语句,返回码改变一次)

15.DCLGEN是什么,有什么作用?在程序中如何引用DCLGEN产生的变量

DCLGEN is a DB2 DSN subcommand for generating table declarations for designated tables or views. The declarations are stored

in MVS data sets, for later inclusion in DB2 source programs. EXEC SQL INCLUDE DCLGENMEM END-EXEC

16.DB2中 VARCHAR型的数据,主机变量中如何表示? 分为两部分来表示:一部分表示其长度 S9(4) comp

另一部分表示数据 X(N)

COMPUTE FIRSTNME1-LENGTH = FUNCTION LENGTH (FIRSTNME1) MOVE

FIRSTNME1-LENGTH

TO

TBD445-FIRSTNME-LEN MOVE

FIRSTNME1

TO

TBD445-FIRSTNME-TEXT 17.如何对一个表创建唯一索引

CREATE UNIQUE INDEX IXNAME ON TABLE TBTEST (PRIMARYKEY)………………..

如果索引已经创建,用ALTER TABLE TABLE1 ADD UNIQUE

INDEX

18.什么是主机变量?

EXEC SQL SELECT COUNT(*) INTO :A FROM B ,那主机变量A 5728 WORKING-STORAGE SECTION 中如何定义? S 9(9) COMP S 9(4) COMP 19.什么是主键什么是外键?

主键是表中能唯一标识一条记录的一列或列的组合,每个表只能有一个主键,且不能为NULL。

外键 (FK) 是用于建立和加强两个表数据之间的链接的一列或多列。通过将保存表中主键值的一列或多列添加到另一个表中,可创建两个表之间的链接。这个列就成为第二个表的外键 是一种约束条件,保证的一致和完整性。

20. HAVING & WHERE 的作用是什么? 有什么区别

HAVING不能单独使用,必须和group BY一起。HAVING之后可以加列函数也可以加标量函数。而WHERE 只能加标量函数。 21. 请问BIND PACKAGE 时候的ISOLATION 参数有哪些? 各表示什么意思?

答: ISOLATION级别有 CS RS RR UR

CS表示读游标稳定,游标取得的数据是可以改变的。 RS表示读稳定,可以对表进行读取操作,可以新插入新的记录

RR表示可重复读,对表进行读操作,其他操作不可进行

UR表示可以脏读。

22. 在DB2中,TABLESPACE有几种类型(简单表空间,分段表空间,分区表空间,LOB表空间)?

使用表空间的一个明显的好处是能够把数据合理的分布存储在不同的磁盘上或者存储在磁盘的不同位置上,有助于提高数据存取的效率。DB2 的表空间按管理方式分为两种:系统管理空间(System Management Space,SMS)和数据库管理空间(Database Management Space,DMS)。按类型分为:规则表空间、大对象表空间、系统临时表空间、用户临时表空间。

DB2共有4类表空间:简单表空间(simple tablespace),分段表空间(segmented tablespace),分区表空间(partitioned tablespace),LOB表空间(lob tablespace)。

23.什么情况会产生SQLCODE=-904? 无法利用的资源,得不到的资源。 24.什么时候出现SQLCODE=-530?

在INSERT,UPDATE时,外键与主键値类型不匹配,找不到相等的値,对特定的约束名指定了无效的外键。 25.SEARCH和SEARCH ALL有什么不同? 26. 在JCL下使用(IEFKJ01)来对DB2进行操作。 CICS:

1. 如何理解 LINK XCTL CALL的区别?

答: LINK是调用相当于下一级的程序,调用完成后会返回主调程序; XCTL是调用相当于同一级的程序,调用完成后不返回主调程序; CALL是通过 USING字句调用程序,在调用程序时候通过用USING 变量来指定

要传递的参数,在子程序的PROCEDURE段,也要使用USING字句来接收传递过来的参数。 2. CICS如何传递参数?

答: 通过在LINKAGE SECTION里面定义变量DFHCOMMAREA,来进行参数传递

3.CICS程序通过什么命令实现从VSAM记录中的某一条开始顺序向后读取

STARTBR READNEXT READNEXT 4.如何判断交易首次运行

EIBCALEN和STRANID 另一种是通讯区

5.CICS程序对VSAM文件进行REWRITE之前要进行什么动作?REWRITE命令需要RIDFLD参数吗,为什么?

先READ Updata rewrite 时不需要RIDFLD READ Updata 时已定位

6.COMMAREA和DFHCOMMAREA有什么区别 略

7.什么是伪会话,它有什么好处

伪会话:在等待用户输入的时候,程序停止,当用户输入信息时

候再启动另外一个程序。节省资源。

会话:在等待用户输入的时候,程序一直在运行,这个程序不结束,别的程序无法执行,在等待。

8.CICS如何对VSAM文件从中间开始读取

STARTBR READNEXT READNEXT READPREV READPREV

9.为什么要把DFHAID COPY 进来,它里面有那些常量举例? DFHBMSCA 如何设置高亮?

包括了许多功能键 如DFHPA1 DFHPA2 DFHENTER DFHPF3

MOVE DFHBMASB (自动跳过高亮) TO EMPNOA DFHPROTI (保护高亮) DFHMBRY (未保护高亮)

10.对于一个新的交易,需要定义哪些CICS的资源 MAPSET TRANS PROG FILE

11.调试CICS程序时候遇到的常见的错误 APCT ASRA 如何解决?

答: ASRA表示数据类型不匹配,数据异常。CEDF 找OFFSET 。COBOL 中找相接近的地址。APCT表示程序模块在PPT中找不到。

12.CICS中常用的系统交易有哪些,分别做什么功能? 答: 常用的系统交易有CEDA 进行文件,程序,以及交易的

定义和安装;

CEDF进行程序的单步调试; CEMT进行程序的更新,以及资源的查询

CECI进行画面的发送等。

13.请简述如何调试CICS程序 ( 这个很重要,一般都会简单问道)

答: 在我们这边主要是通过CEDF跟踪终端号来进行程序跟踪,如果要查看变量情况我们会用 ENTER TRACEID来进行断点跟踪,然后用F5去里面看变量相应的16进制代码。 14. TSQ和TDQ的区别?

TSQ:程序中动态定义,直接使用;BATCH程序不能访问TSQ;可以更新里面的记录;记录可以随即读取,还可以读取多次 TDQ:必须在DCT中定义;当TDQ中含有记录时候,一个CICS 事务会自动开启,而TSQ则不会;可以用于BATCH程序;是QSAM(顺序存储文件);记录不可以更新;记录只能顺序读取,不可以多次读取,只能读取一次。 15. 定义VSAM数据集需要使用的Utility

//STEPCOPY EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSOUT DD *

//INPFILE DD DSN=G1SG00AT.INPUT,DISP=SHR

//OUTFILE DD DSN=G1SG00AT.OUTPUT, // DISP=(NEW,CATLG,DELETE), // UNIT=SYSDA,

// SPACE=(CYL(2,2),RLSE), //

DCB=(LRECL=80,BLKSIZE=0,RECFM=FB,DSORG=PS),

// MGMTCLAS=TSONORM //SYSIN DD * REPRO

-

- -

IFILE(INPFILE)

OFILE(OUTFILE) SKIP(100) - COUNT(500)

/*

从INFILE中拷贝记录到OUTFILE中,从第101条记录开始,一共拷贝500条。 16. VSAM与DB2的区别?

1.是VSAM使用前需要事先在环境部做文件定义和在数据部申明文件数据描述,DB2不需要;

2.是读写VSAM文件时使用的都是CICS COMMANDS,而DB2的使用是嵌入的SQL语句;

3.是VSAM也有索引的定义和使用,但是不如DB2使用的广泛,DB2有唯一索引,外键,主键等保证查询快速;

4.是VSAM查询每次读文件都是对一行数据,而DB2可以查询任意字段;

5.是在线交易中使用VSAM前,需要在CICS中事先用命令CICS CEMT SET FILE(XXXX) OPEN打开文件,而DB2可直接操作;

17.执行交易的整个流程?

A,在终端上键入TRANSACTION ID;B,CICS对TRANSACTION ID进行确认,从PCT中寻找这个TRANSACTION ID;C,CICS从PCT找到与这个交易绑定的程序名;D,从PPT中找到该程序,将它放到主储存体中;E,CICS根据从PCT和PPT中得到的信息,建立起该交易和它所在终端的控制区间(CONTROL BLOCK);F,CICS将控制权移交给程序,用户可输入数据;G,程序若要处理某个档案时,必须指明档案名称,由CICS在FCT中查到后再根据其信息向系统发出适当的请求;H,CICS将处理结果返回终端。 18.CICS中自己的语言。

CICS has its own language. Some of the language abbreviations of CICS are: SIT

System Initialization Table Program Control Table

PCT

PPT TCT FCT TCP

Program Processing Table Terminal Control Table File Control Table Terminal Control Program

TCTUA Terminal Control Terminal User Area DCT TDQ EIP

Destination Control Table Transient Data Queue Execution Interface Program File Control Program Interval Control Program Task Control Program Program Control Program Storage Control Program Task Control Area

FCP ICP KCT PCP SCP TCA

TCTTE Terminal Control Table Terminal Entry TSQ TWA AID CWA MRO QID

Temporary Storage Queue Task Work Area Attention Identifier Common Work Area Multi Region Operation Queue Identifier

本文来源:https://www.bwwdw.com/article/kapr.html

Top