大学专业大型机332,学cobol,jcl,vsam,cics,db2,请问了解的大神,工作前景怎么样,

深圳招聘cobol主机工程师信息|深圳四方精创资讯股份有限公司招聘cobol主机工程师职位【找工易】
深圳四方精创资讯股份有限公司
500-1000人
补充医疗保险餐饮补贴出国机会
cobol主机工程师
-广东-深圳-
1、负责银行核心系统的开发与日常维护工作;2、工作地点:深圳(根据工作需要,有赴香港/澳门出差机会)职位要求:1. 全日制大专以上学历,计算机相关专业。2. 熟悉大型机ispf操作,熟悉cobol语言,了解jcl, cics, db2, vsam/qsam等,能独立处理online或batch的日常工作;3. 具有良好的沟通表达能力、良好的团队合作精神、较好的抗压能力。
4. 有1年以上银行it开发经验,熟悉银行存款、贷款、支付等相关业务知识者优先。
福利情况:
补充医疗保险餐饮补贴出国机会带薪年假弹性工作定期体检房补股票期权绩效奖金加班补助节日福利免费班车年底双薪年终奖金社保双休五险一金员工旅游正式合同周末双休专业培训做五休二
工作地址:科技园
温馨提示:
1、政府规定,招聘单位禁收抵押金及任何费用,敬请留意!
2、本职位信息来源于网络
,您可点击查看源页面!
3、本网页全部信息来源于用户注册免费发布或通过网络搜索技术收集,如信息中图片、商标、文字等有侵犯版权以及有信息遭冒用不真实的情况,请立即通知我们,我们将积极配合予以删除,并可提供信息来源网址或者信息发布者ip、手机等详细信息。
你是该公司雇员?
深圳四方精创资讯股份有限公司其他招聘职位
应届毕业生
应届毕业生
相似职位推荐
|工作经验不限
百度搜狗360
相关招聘企业
未注册用户-快捷填简历 马上求职
Copyright◎ 2018 hunt007.com, All Rights Reserved.当前位置: >>
JCL.Cobol.DB2.CICS面试题
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=IDCAMSDEFINE CLUSTER(NAME(OCB4D4.EX0801.VKD44N) VOL(TSTCC2) RECSZ(48 48) REC() 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) 2) 3) 4) 5) 据。 VSAM 用 3 个编目项描述一个次键: -一个次键项描述次键是一个 KSDS。 -一个数据项描述次键的数据部件。 -一个索引项描述次键的索引部件。 定义次键需要指定的信息与定义一个 KSDS 类似。如果次键 允许许多不唯一的键,则 RECORDSIZE 必须足够大。在定义次 键时,如指定了 UPGRADE 属性,则 VSAM 数据集改变时,次 键自动改变。 定义 CLUSTER。 装入数据。 用 DEFINE ALTERNATEINDEX 命令定义次键。 用 DEFINE PATH 命令将次键与 CLUSTER 相关联。 用 BLDINDEX 命令建立次键。也就是在索引中装入数 例 假定你有一个数据集叫 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 DSN=DS.DS580416.TEMP1,DISP=OLD,UNIT=IDMP, // //IDCUT2 DSN=DS.DS580416.TEMP2,DISP=OLD,UNIT=IDMP, // VOL=(,,,,SER=(PDS001)) VOL=(,,,,SER=(PDS001)) DD DD DD//SYSPRINT DD SYSOUT=* //SYSIN DD *BLDINDEX INFILE(PRMINDEX) OUTFILE(ALTINDEX) /*COBOL: 1.comp 型 1-4 个 9 占 2 位。 个 9 占 4 位 。 5-9 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 是二进制,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 进制表示) ( 01) (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 显示为 .COBOL 程序读取文件记录,如何判断已经读到最后一条记录 COMP-3 占多少字节? S9(7)V9(2) DISPLAY 占多少 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 05 BBB 10 B-1 10 B-2 PIC X(6)REDEFINES AAA. PIC X(4). 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- 2. Un-initialize working- 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 KEY16.如何定义一个数组?比如学生记录里面课程有 8 门 01 STUDENT. 05 NAME 05 COURSE PIC X(10). PIC X(4) OCCURS 8 TIMES.OCCURS 不能定义在 01 层。 17. VSAM 文件的组织形式有哪些? ESDS:Entry Sequential Data S 顺序数据集; 特点是:A,记录只能增加在文件尾部;B,记录可被修改但长 度不能被改变,记录不能被删除;C 能根据相对寻址的方式进行 操作。 RRDS:Relative Record Data S 相对记录数据集; 特点是:A,在数据集中包含许多小的数据块,这些可能有数据 或为空;B,记录可能是固定的或可变的;C,肯顺序或直接的 存取,根据相对的记录数方式操作。 KSDS:Key Sequential Data S 索引数据集; 特别是: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 例如: 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 共享。也就是说,重定 A PIC X(5). 义后两个数据名的名称和两种数据结构同时存在,都有 效。程序中可使用其中任何一个。他们在内存中为同一段 存储单元。 如果改变了内存内容, 则二者的值都因而改变。 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 PERFORM 100-PROC UNTIL X & 10; GO TO 语句。 X & 10; X FROM 1 BY 1VARYING 22.如何从 VSAM 中的一条记录开始顺序读取以下的记录 答: 通过指定 KEY 值来指定从文件的哪个 KEY 开始读记录, 用 COBOL 语句: END-START READ FIEL1 文件记录变量 END-READ STARTBR, READNEXT or NEXT RECORD INTO START FILE1 KEY IS EQUAL TO 变量从 文 件 头 中 间 开 始 CICS READPREV, then ENDBR. 读 取 首 条 记 录 , 给 STARTB-&READNEXT; 从 文 件 尾 读 取 , 给 STARTB-&READPREV. keykey值 赋LOW-VELUE ,值 赋HIGH-VALUE ,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 语句是用来初始化变量内存的语句, 如果变 表示统计 量是字符型/字母型就初始化为 空格, 如果是数值型就都初始 化为 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 non-optional file that was not present.) ; 39 程序定义与文件属性不匹配。记录格式不匹配; 92 逻辑错误,没先读就写; S0C4 读文件时文件没有打开。 attempted on a 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 的 过程,plan 包括程序中所有使用的 SQL 语句,在执行的时候, CICS 程序可以通过 plan 访问 DB2 的数据。这些 plan 位于 DB2 内部, CICS 连接 DB2 的时候, 在 每个线程都要指定一个相应的 plan。在 CICS 中,定义 DB2CONN 的时候,在 pool 的线程的属 性中,有相应的 plan 的名称;定义 DB2ENTRY 的时候,在 entry 的线程的属性中,有相应的 plan 的名称。 一.CICS 的程序访问 DB2 数据的时候,需要做下面的一些准备 工作。 1. 第 1 步,CICS 的程序做 DB2 的预编译。在此步骤中,DB2 的预编译建立 DBRM(database request model) ,包括程序中所有 的 SQL 语句的信息。 2.第 2 步 CICS 的语句翻译, 3 步编译, 4 步链接都是 CICS 第 第 程序的通常步骤,无论是否访问 DB2。在第 4 步链接的时候,如 果访问 DB2,会包括 DSNCLI(CICS DB2 language interface module) 。 3.如果访问 DB2,一个附加的步骤是第 5 步 bind,Bind 过程需 要 DB2 和第 1 步生成的 DBRM,据此产生 plan,程序就可以访 问 DB2 了。 任何 CICS 的应用程序访问 DB2, 都需要 bind 过程。 Bind 过程是将 DBRM 中涉及的 SQL 语句放进一个操作的表格, 并被翻译成 DB2 运行 SQL 语句使用的 control structures。 作为结 果,可以放到一个 package 中,或者直接放到一个 plan 中。 二.Plans 和 packages 的介绍应用程序在执行的时候,访问 DB2 数据是通过 plan 来进行的。如果由 DBRM 得到的可操作的 SQL 语句直接放入一个 plan 中,我们称作 DBRM 直接 bind 到 plan。 另外,还可以将由 DBRM 得到的可操作的 SQL 语句放入一个 package 中(使用 BIND PACKAGE 命令) ,之后,将有联系的 packages 放入一个集合中,再把集合(或者多个 package)bind 到一个 plan 中。相应的 DBRM 可以是服务一个应用程序或多个 应用程序。另一方面,当 plan 生成后,需要相应的维护。在一 个应用程序或多个应用程序中,如果修改了 SQL 语句,就需要 重新生成相应的 DBRM。在 plan 生成时,采用的是 DBRM 直接 bind 到 plan 的话,就需要把此 plan 中所有的 DBRM 重新 bind, 包括修改的应用程序和没有修改的应用程序。 plan 在 bind 时, 当 应用程序是不能通过它来访问 DB2 的。在 plan 生成时,采用的 是 DBRM bind 到 package 的话,只需要把修改的应用程序的 DBRM 重新 bind 到 package(和原来 package 的名字要求一致) 中,就可以了,不用再 bind 到 plan。Plan 中其他的 packages 不 需要做任何的操作。当 package 在 bind 时,不使用此 package 的 应用程序可以通过 plan 访问 DB2。在 CICS 环境中,定义连接 DB2CONN(pool thread)和 DB2ENTRY(entry thread)时,会 指定使用的 plan。当 CICS 的应用程序访问 DB2 的数据时,会告 诉 DB2 要使用的 plan, DB2 再找到 plan, 对数据进行操作。 entry thread 指定的 plan,采用的是 DBRM 直接 bind 到 plan 的话,当 对某个程序修改后,bind 时,使用此 DB2ENTRY 的所有 CICS 交易,就不能访问 DB2 的数据。pool thread 指定的 plan,采用的 是 DBRM 直接 bind 到 plan 的话, 当对某个程序修改后, bind 时, 所有的 CICS 交易 (没有指定使用 entry thread) 就不能访问 DB2 , 的数据, 影响是比较大的。 所以, 避免将 DBRM 直接 bind 到 plan 中,而采用将各自的 DBRM bind 到不同的 package 中,是一个 很好的选择。 3.SQL 语句中各个子句执行的顺序。 order by 永远要写在 sql 语句的最后一条。 1、 FROM 子句。2、WHERE 子句。3、GROUP 子句。4、HAVING 子句。5、SELECT 子句。6、ORDER BY 子句。 4.QSAM 和 VSAM 的 ESDS 有什么区别? 在用法上基本上没有区别。 QSAM 是顺序数据集。 VSAM 的 ESDS 是 VSAM 数据集 使用上 ESDS 用有 VSAM 数据集的一些特性,如可以扩展 123 次,而 QSAM 的只可以 16 次。从数据访问方式上,两者基本相 同,都是顺序访问。 5.CALL(Static CALL,Dynamic CALL) & LINK 的区别。 Be aware that CALL does not mean the called module is part of the load module. That is only true if it is a Static call. Dynamic calls do not include the called routine in the load module. This question must be related to CICS since COBOL does not have a LINK statement. There are distinctions as listed below: Static CALL: Called module is part of the load module. CICS knows nothing about it and doesn't get involved with the communication between the modules. Dynamic CALL: Called module is not part of the load module. CICS needs a PPT entry for both the called and calling program. Under the covers, CICS treats it like a LINK request. Arguments are passed as with a static call. LINK: CICS command-level request to pass control to another module with a return back to the caller. Arguments are passed in a COMMAREA. 6.动态的 SQL 和静态的 SQL 的区别? dynamic SQL: sql statements that are prepared and executed within an application program while the program is executing. In dynamic SQL ,the SQL source is contained in host language variables rather than being coded into the application program.The SQL statement can change several times during the application program's execution. static SQL: SQL statements,embedded within a program, that are perpared during the program perparation process(before the program is executed )after being perpared,the SQL statement does not change(although values of host variables that are specified by the statement might chang). 7.COBOL & DB2 程序的编译过程是哪几步?BIND 是做什么用 的?Package & plan 如何理解的? 4 部 DB2 pre-compiler (if embedded SQL used), CICS translator (if CICS program), COBOL compiler, Link editor, binding the DBRMs using the package or plan. 预编译时把 SQL 语句全部提出来,通过绑定放到 DBRM 指定的 PLAN 中,再把没有 SQL 语句的程序编译成机器语言,执行时 把机器语言和 PLAN 连接起来。PLAN 中存放的是访问路径。 a) 预编译作业步:检查 SQL 语句并产生数据库请求模块; 检查主机变量; b) COBOL 作业步:检查 COBOL 程序的语法及语义; c) 连接作业步:检查 CICS 命令和语法,产生可执行模块; d) 绑定作业步:BIND PLAN/PACKAGE,绑定 COBOL 和 DB2; COBOL DB2 的编译过程有预编译,编译,链接和绑定。 预编译:是 DB2 的预编译,对 SQL 语句进行处理,把源程 序中的 SQL 语句提取出来到 DBRM。 编译: 是 COBOL 的编译,对没有 SQL 语句的源程序进行正常的 COBOL 的编译。 连接: 对源程序进行连接,生成编译后的可执行模块。绑定: 对产生出来的可执行程序模块和生成的 PLAN 进行 绑定 BIND 的作用是检查 DB2 的语法,并选择最优的路径去访问 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 使惟一键不唯一便会出现该错误。 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 返回码表示什么意思? INSERT 了已经存在的数据, 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-EXEC16.DB2 中 VARCHAR 型的数据,主机变量中如何表示? 分为两部分来表示:一部分表示其长度 S9(4) comp 另一部分表示数据 X(N) COMPUTE FIRSTNME1-LENGTH = FUNCTION LENGTH (FIRSTNME1) MOVE FIRSTNME1-LENGTH TOTBD445-FIRSTNME-LEN MOVE FIRSTNME1 TOTBD445-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 READNEXT4.如何判断交易首次运行 EIBCALEN 和 STRANID 另一种是通讯区5.CICS 程序对 VSAM 文件进行 REWRITE 之前要进行什么动 作?REWRITE 命令需要 RIDFLD 参数吗,为什么? 先 READ Updata 时已定位 6.COMMAREA 和 DFHCOMMAREA 有什么区别 略 7.什么是伪会话,它有什么好处 伪会话:在等待用户输入的时候,程序停止,当用户输入信息时 rewrite 时不需要 RIDFLD READ Updata 候再启动另外一个程序。节省资源。 会话:在等待用户输入的时候,程序一直在运行,这个程序不结 束,别的程序无法执行,在等待。 8.CICS 如何对 VSAM 文件从中间开始读取 STARTBR READNEXT READNEXT READPREV 9.为什么要把 DFHAID COPY 进来,它里面有那些常量举例? DFHBMSCA 如何设置高亮? 包括了许多功能键 DFHPF3 MOVE DFHBMASB (自动跳过高亮) DFHPROTI (保护高亮) DFHMBRY (未保护高亮) 10.对于一个新的交易,需要定义哪些 CICS 的资源 MAPSET TRANS PROG FILE TO EMPNOA 如 DFHPA1 DFHPA2 DFHENTER READPREV11.调试 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) , // //SYSIN 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 语句; MGMTCLAS=TSONORM DD * - 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 找到与这个交易绑定的程 序名; 从 PPT 中找到该程序, D, 将它放到主储存体中; CICS E, 根据从 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 PCT System Initialization Table Program Control Table PPT TCT FCT TCPProgram Processing Table Terminal Control Table File Control Table Terminal Control ProgramTCTUA Terminal Control Terminal User Area DCT TDQ EIP FCP ICP KCT PCP SCP TCA TCTTE TSQ TWA AID CWA MRO QID 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 Terminal Control Table Terminal Entry Temporary Storage Queue Task Work Area Attention Identifier Common Work Area Multi Region Operation Queue Identifier
All rights reserved Powered by
www.tceic.com
copyright &copyright 。文档资料库内容来自网络,如有侵犯请联系客服。}

我要回帖

更多关于 cobol db2 动态查询 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信