




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、JCL:1 簡單描述一下DISP的使用,它有哪些參數?DISP 參數用來告訴系統要使用的數據集的狀態(tài)是什么并且告訴系統當本作業(yè)步執(zhí)行完畢后如何處理這個數據集。你可以為作業(yè)步正常結束和非正常結束時分別指定不同的處理方法。DISP= ( NEW ,DELETE ,DELETE )為空時也表示這個。OLD ,KEEP ,KEEP SHR ,PASS ,CATLG MOD ,CATLG ,UNCATLG, ,UNCATLG2 什么是PROCEDURE,有哪幾種PROCEDURE,簡述區(qū)別有2中PROCEDURE, 一種是CATALOG的PROCEDURE,是把過程的JCL語句寫在一個編目的數據集里,該
2、數據集必須是PDS 或PDSE里的一個成員,能夠同時被多個JCL 調用。另一種是INSTREAM的PROCEDURE,流內PROCEDURE,寫在一個JCL里面,以PROC開頭,以PEND字句結束。3.什么是GDG數據集,GDG數據集的每一代數據集是否可以是不同類型的? 定義GDG數據集有3個重要的參數: LIMIT NOEMPTY SCRATCH 各表示什么含義? 定義GDG BASE之后要必須定義什么?答:GDG數據集是一組名字相似,時間和功能相關的數據集。GDG數據集是MVS中的世代數據集,通過IDCAMS來創(chuàng)建。 GDG數據集的每一代可以是不同類型的。 3個重要的參數 LIMIT表示這
3、個世代數據集最多可以有多少代; NOEMPTY表示不清空, SCRATCH表示最老的一代是被刪除掉的。定義GDG BASE之后必須定義GDG DSCB才能生效。4. COND參數是什么意思? 如果我需要作業(yè)步3,只在作業(yè)步2返回碼是0或者4的時候才執(zhí)行,如何寫COND參數? 答: COND參數是CONDITION參數,表示什么情況下作業(yè)步被執(zhí)行/不被執(zhí)行。 COND=(4,LT,STEP2)5.IEBCOPY與IEBGENER有什么區(qū)別?IEFBR14是起什么作用的?IEBCOPY:對分區(qū)數據集進行拷貝、壓縮或合并IEBGENER:拷貝順序數據集,或將順序數據集轉為分區(qū)數據集IEFBR14實際
4、是一個空程序,什么也不做,只是返回返回碼0,但是使用它可以進行JCL 語言的各種處理,如DD 語句中創(chuàng)建數據集等。6用哪一個UTILITY去定義VSAM文件,簡介一個定義VSAM文件的一些參數DEFVSAM EXEC PGM=IDCAMSDEFINE CLUSTER(NAME(OCB4D4.EX0801.VKD44N) VOL(TSTCC2) - RECSZ(48 48) REC(1000 1000) KEYS(10 0) 7.定義VSAM的時候是否可以指定VSAM分配的大小,通過哪個參數指定? 答:通過用IDCAMS來定義VSAM文件,通過指定CYL參數來指定VSAM分配的大小,在定義VSA
5、M的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各表示什么?第一個 首次分配;第二個 擴展分配;第三個 目錄區(qū)大小10.要建立一個PDSE數據集,記錄格式是定長不分塊,記錄長度是120,塊大小系統選定,DCB參數如何寫,為了指明建立的是PDSE還要寫哪個參數?答:
6、 DCB = ( RECFM = F, LRECL = 120, BLKSIZE = 0) ,還要指定 DSNTYPE = LIBRARY 參數才能表示是分配的是PDS-E數據集。11.如何讓系統指定BLKSIZE, 系統指定有什么好處?答:系統指定BLKSIZE的話,需要在有RECFM參數,LRECL參數的情況下,指定BLKSIZE = 0, 或者不指定 BLKSIZE參數,就是系統指定BLKSIZE參數。 系統指定BLKSIZE的話,可以最優(yōu)化塊大小的分配,節(jié)省系統空間。12.PDSE和PDS有什么區(qū)別?PDS刪除的成員空間不會自動釋放,壓縮 才能使用該存儲空間。而PDSE的刪除后自動釋放
7、,不可壓縮。PDS可能有目錄缺陷而PDSE沒有13.在一個JCL作業(yè)中有多個作業(yè)步,如何從其中的一個作業(yè)步開始執(zhí)行作業(yè),用哪個參數指定?答: 可以通過在JOB語句里面指定RESTART = STEP5 參數是JCL直接從作業(yè)步 5 開始執(zhí)行。14. SPACE參數中的RLSE參數是起到什么作用?答: RLSE參數表示RELEASE,表示系統自動釋放掉分配給數據集的但是沒有被使用的空間。15.JCL中定義的記錄格式有哪些? 分別表示什么含義?FB定長分塊 F定長不分塊 VB變長分塊 V變長不分塊 和 U未定義,存放的是二進制代碼。16. STEPLIB DD 語句, JOBLIB DD 語句,J
8、CLLIB 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是用來做什么的, 如果我想對記錄中的第二個字段進行字符升序排
9、序,這個字段的起始位置是4長度是19,如何寫 SORT的控制語句?答: 主要是對文件中的記錄進行排序,最常見的參數是SORT FIELDS,按照題目要求這樣的SORT語句應該這樣寫: SORT FIELDS = (4,19,CH,A)DFSORT 是IBM 的Data Facility 家族的一員,用來對數據集進行排序、拷貝和合并??刂七x項:SORT:指定對數據集進行排序操作;MERGE:指定對數據集進行合并操作;COPY:指定對數據集進行拷貝操作;FIELDS:指定排序鍵值的信息,格式為FIELDS=(起始位置,長度,升降序,起始位置,長度,升降序),FORMAT=數據類型(起始位置,長度,
10、數據格式,升降序,起始位置,長度,數據格式,升降序)其中位置和長度都是以字節(jié)為單位,順序可選的有A:升序,D:降序,E:使用用戶出口例程定序; FORMAT=指定鍵字的類型,可選項有CH:字符類型,PD:壓縮十進制型,BI:二進制型,AC:ASCII 碼型。18通過JCL怎么傳遞參數?PARM用于向本作業(yè)步執(zhí)行的程序傳遞變量信息。該程序必須有相應的指令接收這些信息,并使用它們。格式:PARM.過程步名= 子參數PARM.過程步名=( 子參數, 子參數)PARM.過程步名=(子參數, 子參數)PARM.過程步名=子參數, 子參數包括所有的逗號、撇號以及括號在內,所有子參數的總長度不得超過100
11、個字符。當某子參數中含有特殊字符或空格時,可以將該子參數用撇號括起來,在其它子參數一起用括號括起來,或將所有在參數用撇號括起來。子參數:包含傳遞給程序的變量信息。例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和
12、ESDS數據集。定義次鍵的步驟如下:1) 定義CLUSTER。2) 裝入數據。3) 用DEFINE ALTERNATEINDEX命令定義次鍵。4) 用DEFINE PATH命令將次鍵與CLUSTER相關聯。5) 用BLDINDEX命令建立次鍵。也就是在索引中裝入數據。 VSAM用3個編目項描述一個次鍵:-一個次鍵項描述次鍵是一個KSDS。-一個數據項描述次鍵的數據部件。-一個索引項描述次鍵的索引部件。 定義次鍵需要指定的信息與定義一個KSDS類似。如果次鍵允許許多不唯一的鍵,則RECORDSIZE必須足夠大。在定義次鍵時,如指定了UPGRADE屬性,則VSAM數據集改變時,次鍵自動改變。 例
13、假定你有一個數據集叫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
14、(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文件建立交替的索引?
15、/DS580416 EXEC PGM=IDCAMS,/PRMINDEX DD DSN=DS.DS580412.AGGR,DISP=SHR/ALTINDEX DD DSN=DS.DS580412.AGGR.AIX,DISP=SHR/IDCUT1 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
16、INFILE(PRMINDEX) OUTFILE(ALTINDEX)/*COBOL:p型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 可以省略不寫么?標識部 環(huán)境部 數據部 過程部4.批次程序如何引用文件?要在程序中加入哪些描述語句?ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT IN-FI
17、LE 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-RE
18、CORD PIC X(80). 4.COMP和COMP-3,DISPLAY各表示什么意思? S9(4) COMP-3占多少字節(jié)? S9(7)V9(2) DISPLAY 占多少字節(jié)?COMP是二進制,COMP-3是壓縮十進制,DISPLAY是十進制。S9(4) COMP-3占3個字節(jié)S9(7)V9(2) DISPLAY 占9個字節(jié)5.如果VSAM中的字段格式是 S9(7)V9(2) comp-3, 如何定義一個數據來接收這個數據并DISPLAY出來?答:通過定義 9(7).9(2) 來接收這個變量。6.S9(4) COMP-3在內存中占多少字節(jié)? -1234在內存中是如何存儲的?答: S9(4)
19、 COMP-3在內存中占3個字節(jié), -1234在內存中表示為 01 23 4D (16進制表示) ( 00000001 00100011 01001101) (2進制表示)7. S9(7) COMP在內存中占多少字節(jié)? MOVE 1234 TO VAR, DIS PLAY 之后VAR1 顯示結果是 (VAR1的PIC字句是 S9(7) COMP-3)答:S9(7) COMP 在內存中占4個字節(jié), MOVE 1234 TO VAR1之后, DISPLAY VAR1顯示為 0001234.8.COBOL程序讀取文件記錄,如何判斷已經讀到最后一條記錄 100-READ.READ FILE1 INTO
20、 FILE-REC AT END. NOT AT END . GO TO 100-READ.9.COBOL中如何調用子程序?如何向子程序傳值?使用CALL,XTCL,LINK來調用子程序,其中call使用在batch程序中,XCTL,LINK使用在CICS中。使用call和LINK調用子程序后,子程序結束后仍回到主程序。而XTCL后,子程序結束后不返回。使用通訊區(qū)在子程序間傳值。10.舉例說明如何使用 REDEFINES, 要注意什么?REDEFINES是用來重定義,數據長度和類型都可以不同05 AAA PIC X(6)05 BBB REDEFINES AAA. 10 B-1 PIC X(4)
21、. 10 B-2 PIC X(2)11.文件打開的方式有哪幾種?各表示什么?INPUT 輸入 從該文件中讀取數據OUTPUT 輸出 把數據輸出到文件中I/O 即可輸入又可輸出EXTENT 擴展12.你是如何調試批次程序的?在SDSF里面看作業(yè)的返回碼,進入JES的作業(yè)信息查看是哪一個作業(yè)步發(fā)生了錯誤,返回碼是多少,然后去響應的作業(yè)步里面查看出錯信息如果可能是變量錯誤的話,用DISPLAY 跟蹤13.S0C7是什么錯誤,如何解決?S0C7-may be due to: 1. Numeric operation on non-numeric data; 2. Un-initialize worki
22、ng-storage; 3. Coding past the maximum allowed sub script.數據類型不匹配。通過OFFSET后面的十六進制的數。14.在線程序與批次程序有何區(qū)別?根本區(qū)別:在線程序需要用到cics,而批次程序不需要15.COBOL讀取文件記錄的語句,分別描述一下順序和索引文件的讀取READ INTO AT END NOT AT END READ INTO KEY IS INVALID KEY NOT INVALID KEY16.如何定義一個數組?比如學生記錄里面課程有8門01 STUDENT. 05 NAME PIC X(10). 05 COURSE P
23、IC 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; 索引數據
24、集;特別是:A,記錄能進行順序或直接的讀寫;B,記錄能被新增、修改、刪除無限制,記錄由索引方式來組織;C,按鍵值的方式進行操作。LDS 線性存儲,數據沒有分界線。18.文件的訪問方式有哪些? SEQUENTIAL 順序RANDOM 隨機DYNAMIC 動態(tài)(有條件)19.REDEFINES的起什么作用,請簡述REDEFINES使用時要注意的地方答: REDEFINES表示重定義,為同一個內存重新定義一個變量的名字。 例如: 01 A PIC S9(7)V9(2) COMP-3. 我們用B 來REDEFINES A 就用如下語句: 01 B REDEFINES A PIC X(5). 例如: 0
25、1 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子句不能用于文件節(jié)的01層中,因為文件節(jié)中01層描述的是記錄,但工作單元節(jié)中的01層是可以用REDEFINES子句重新
26、定義的,因為這里的01層不是指輸入輸出文件的記錄,而是指組合項。5.用REDEFINES子句可以改變數據的結構,但兩個數據名的長度應相同。6.內存中的值為數據名1和數據名2共享。也就是說,重定義后兩個數據名的名稱和兩種數據結構同時存在,都有效。程序中可使用其中任何一個。他們在內存中為同一段存儲單元。如果改變了內存內容,則二者的值都因而改變。 7.重定義子句所在的數據描述體中不能使用初值子句賦初值20.如何定義和使用文件 ? 如何把COBOL程序中的文件關聯到實際的文件上?答:在COBOL程序的Environment division段里的INPUT-OUTPUT SECTION FILE-CO
27、NTROL進行文件的定義,包括內部文件名,外部文件名,文件的格式以及訪問方式 在 Data Division里的 FILE SECTION里面進行 FD 進行文件記錄變量的描述 在 運行程序的JCL里面通過指定PGM = 程序名, 和相同的外部文件名來關聯程序和實際的物理數據集。21. COBOL中如何做循環(huán),請描述下常用的循環(huán)語句答:COBOL中主要通過 PERFORM做循環(huán);PERFORM有3種主要的格式:PERFORM 100-PROC X TIMES ;PERFORM 100-PROC UNTIL X 10;PERFORM 100-PROC VARYING X FROM 1 BY 1
28、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.讀取首條記錄,給key值賦LOW-VELUE,STARTB-READNEXT;從文件尾讀取,給key值賦HIGH-VALUE,STARTB-REA
29、DPREV.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 語句是用來初始化變量內存的語句,
30、 如果變量是字符型/字母型就初始化為 空格, 如果是數值型就都初始化為 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/E
31、XTEND,READ或START-READ NEXT;讀完之后CLOSE。判斷文件讀取狀態(tài)使用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 讀文
32、件時文件沒有打開。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 contr
33、ol 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 specif
34、ies the record length of the dataset.30.開發(fā)周期的描述?A開發(fā)前,對項目做詳細的問卷調查和可行性分析,要產生可行性研究報告和行動方案等文檔;B開發(fā)期間,對項目進行需求分析,軟件設計,編碼,測試,并產生需求分析規(guī)格說明書、概要設計規(guī)格說明書、詳細設計說明書(包括MAP設計,數據庫設計,算法設計,程序邏輯設計,程序流程圖等)、項目開發(fā)計劃書、測試需求說明書、測試設計說明書、項目測試計劃書、測試報告書、項目總結報告、用戶手冊等;C開發(fā)后,對項目進行維護和客戶服務。DB2:1主鍵和唯一索引的區(qū)別?主鍵一定是唯一性索引,唯一性索引并不一定就是主鍵。一個表中可以有多
35、個唯一性索引,但只能有一個主鍵 所謂主鍵就是能夠唯一標識表中某一行的屬性或屬性組,一個表只能有一個主鍵,但可以有多個候選索引。因為主鍵可以唯一標識某一行記錄,所以可以確保執(zhí)行數據更新、刪除的時候不會出現張冠李戴的錯誤。主鍵除了上述作用外,常常與外鍵構成參照完整性約束,防止出現數據不一致。數據庫在設計時,主鍵起到了很重要的作用。主鍵可以保證記錄的唯一和主鍵域非空,數據庫管理系統對于主鍵自動生成唯一索引,所以主鍵也是一個特殊的索引。2.Plans 和packages的作用?一個CICS的應用程序訪問DB2的數據時,必須要做一些相應的準備工作,涉及DB2的是bind墓獺ind是產生一個plan的過程
36、,plan包括程序中所有使用的SQL語句,在執(zhí)行的時候,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
37、 第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中,或
38、者直接放到一個plan中。二Plans 和packages的介紹應用程序在執(zhí)行的時候,訪問DB2數據是通過plan來進行的。如果由DBRM得到的可操作的SQL語句直接放入一個plan中,我們稱作DBRM直接bind到plan。另外,還可以將由DBRM得到的可操作的SQL語句放入一個package中(使用BIND PACKAGE 命令),之后,將有聯系的packages放入一個集合中,再把集合(或者多個package)bind到一個plan中。相應的DBRM可以是服務一個應用程序或多個應用程序。另一方面,當plan生成后,需要相應的維護。在一個應用程序或多個應用程序中,如果修改了SQL語句,就需
39、要重新生成相應的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環(huán)境中
40、,定義連接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),就不能訪問DB
41、2的數據,影響是比較大的。所以,避免將DBRM直接bind到plan中,而采用將各自的DBRM bind到不同的package中,是一個很好的選擇。 3.SQL語句中各個子句執(zhí)行的順序。order by 永遠要寫在sql語句的最后一條。1、 FROM 子句。2、WHERE 子句。3、GROUP 子句。4、HAVING 子句。5、SELECT 子句。6、ORDER BY 子句。 4.QSAM和VSAM的ESDS有什么區(qū)別?在用法上基本上沒有區(qū)別。QSAM是順序數據集。VSAM的ESDS是VSAM數據集使用上ESDS用有VSAM數據集的一些特性,如可以擴展123次,而QSAM的只可以16次。從數據
42、訪問方式上,兩者基本相同,都是順序訪問。5.CALL(Static CALL,Dynamic CALL) & LINK的區(qū)別。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
43、 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 doesnt get involved with the communication between the modules.Dynamic CALL: Called module is not part of the load module. CICS needs a PPT e
44、ntry 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.動態(tài)的SQL和靜態(tài)的SQL的區(qū)別?dy
45、namic 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 app
46、lication programs 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 migh
47、t 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語句的程序編譯成機器語言,執(zhí)行時把機器語言和PLAN連接起來。PLAN中存放的是
48、訪問路徑。a) 預編譯作業(yè)步:檢查SQL語句并產生數據庫請求模塊;檢查主機變量;b) COBOL作業(yè)步:檢查COBOL程序的語法及語義;c) 連接作業(yè)步:檢查CICS命令和語法,產生可執(zhí)行模塊;d) 綁定作業(yè)步:BIND PLAN/PACKAGE,綁定COBOL和DB2;COBOL DB2的編譯過程有預編譯,編譯,鏈接和綁定。 預編譯:是DB2的預編譯,對SQL語句進行處理,把源程序中的SQL語句提取出來到DBRM。 編譯: 是COBOL的編譯,對沒有SQL語句的源程序進行正常的COBOL的編譯。 連接: 對源程序進行連接,生成編譯后的可執(zhí)行模塊。 綁定: 對產生出來的可執(zhí)行程序模塊和生成的P
49、LAN進行綁定 BIND的作用是檢查DB2的語法,并選擇最優(yōu)的路徑去訪問DB2里面的表。 PLAN & PACKAGE是存放帶有訪問路徑經過綁定后的DBRM,PACKAGE的優(yōu)勢在于將存放SQL的DBRM?;愿〉膯挝贿M行存放SQL。8.為什么要用游標, 在程序中如何使用? 從表中SELECT記錄時,滿足條件的記錄不止一條時就需用到游標。1 DECLARE, 2 OPEN 3 FETCH 4 CLOSE9.SQLCODE = -811 表示什么錯誤? 如何解決滿足條件的記錄不止一條,用游標。10.SQLCODE = -803 表示什么錯誤? 如何解決在唯一索引的惟一鍵處UPDATE INS
50、ERT了已經存在的數據,使惟一鍵不唯一便會出現該錯誤。11. -805是什么錯誤?如何解決?答: -805表示程序的可執(zhí)行模塊和PLAN不是同一個編譯產生的結果。我們需要通過CEMT S PROG(PROGRAM) NEW 來刷新程序,或者是重新進行綁定。12.請簡述COPY BOOK 和 EXEC SQL INCLUDE 的區(qū)別答: COPY BOOK中的內容在COBOL 編譯的時候可以被識別,COPY BOOK里的內容可以被展開,但是EXEC SQL INCLUDE只能在DB2預編譯的時候被展開,COBOL編譯器不能識別。13. -911返回碼表示什么意思?911表示由于資源搶奪,當前工作
51、單元UOW已經回滾。發(fā)生死鎖。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 SQLstatement executes. An application program that contains executable SQLstate
52、ments must provide exactly one SQLCA. There are two exceptions:v A program that is precompiled with the STDSQL(YES) option must not providean SQLCAv In some cases (as discussed below in In Fortran), a Fortran program mustprovide more than one SQLCA. The description of the SQLCA that is given by INCL
53、UDE SQLCA is shown for eachof the host languages.CA就是communication area ,最主要的內容就是sqlcode和SQLSTATE,還有別的,DB2 實時更新這個區(qū)域,可以用程序訪問里面的變量,需要在程序的開始聲明這個區(qū)域。(就是一個區(qū)域,每次執(zhí)行一個SQL語句,返回碼改變一次)15.DCLGEN是什么,有什么作用?在程序中如何引用DCLGEN產生的變量DCLGEN is a DB2 DSN subcommand for generating table declarations for designated tables or views. The declarations are storedin 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 TO TBD445-FIRSTN
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年CPMM核心技能試題及答案
- 重要的物流交易平臺對比試題及答案
- 老年肺炎的診斷、治療與預防2025
- 餐飲美學基礎 課件 2.3口鼻審美
- 2024年供應鏈管理師考試重點章節(jié)試題及答案
- 放松心態(tài):2024年CPMM試題及答案
- 2024國際物流師的實務考查與試題及答案
- CPSM考試組織管理知識點解析及試題及答案
- 在線學習技巧CPMM試題及答案
- 國際物流師的專業(yè)認證解析試題及答案
- 建設項目工程總體部署編制辦法及編制綱要
- 高處作業(yè)吊籃安全管理培訓課件
- 春季傳染病預防知識主題班會課件
- 合并財務報表模板案例含抵消分錄公式及數據-直接生成報表
- 癲狂中醫(yī)內科學
- 細胞的減數分裂
- 公安基礎知識考試200個考點
- 實驗一、RNA提取及檢測ppt課件
- 美學-漢語言文學測試題
- 湘源控規(guī)使用方法和技巧
- SCB10-1000變壓器出廠檢驗報告
評論
0/150
提交評論