大型機學習之具體技術之-JCL練習(二)

         《大型機學習之具體技術之-JCL練習二》

由於種種原因,在前天結束了培訓的昨天又安排了一次補課,內容是PL/I,可是基礎本來不好,多做一天練習用處其實不大。當時需要的一個小操作是在大機上從老師的用戶編目下拷一個順序數據集到我自己的用戶編目下的一個分區數據集下來,然後使之成爲該分區數據集的一個成員,但是我不知道怎麼做,儘管前面做過關於數據集的具體操作的總結,但是還是不行,所以我就叫老師過來問,老師一過來就用他超級熟練的手法瞬間完成了任務,速度之快,我根本就沒看清他怎麼操作的,然後他還輕輕的搖頭嘆道-“你們怎麼連最基本的操作都沒有掌握。。。”其實我想這個操作放班上,估計至少一半人是不會的,所以說也不是我的問題。。。虧得我前面看了點東西,然後又恰好瞄到他在命令中數據集的名字上加了個引號,我就明白我錯在哪裏了。現在總結到下面:

完成把一個順序數據集拷貝到一個分區數據集下使之成爲該分區數據集的成員的方法是:首先(好像)不能說有種操作會直接完成這個任務,而是要先在目標分區數據集下新建一個成員,進入成員的編輯環境,然後在編輯環境的COMMAND行輸入命令 COPY  ‘SOURCE DS’ 然後你就會看到那個源數據集中的數據都被拷貝到這兒了,然後你保存就可以了。所以這應該算一種間接的方法吧。直接的方法老師當時沒跟我講,我也不知道有沒有。。。

上次進行了JCL的初步練習,今天接着進行,下面是一個調用IEBGENER程序來進行順序數據集拷貝的代碼:

 

//CCM417C JOB ,'JOHNNY',MSGLEVEL=(1,1),NOTIFY=CCM417     

//****************************************************** 

//*      THIS JCL COPY A PS DS TO ANOTHER PLACE        * 

//****************************************************** 

//COPYSTEP EXEC PGM=IEBGENER                             

//SYSPRINT DD SYSOUT=*                                   

//SYSUT1 DD DSN=CCM417.COPYSOR.PS,DISP=SHR               

//SYSUT2 DD DSN=CCM417.COPYDIR.PS,DISP=(NEW,CATLG,DELETE),

//  SPACE=(TRK,(10,2)),RECFM=FB,LRECL=80,UNIT=SYSDA      

//SYSIN DD DUMMY                                         

//                                                       

 

當然執行這個代碼時,你應該自己創建一個源文件並用它的名字來代替CCM417.COPYSOR.PS,然後目標數據集也應該自己命一個名字。

 

下面來個稍複雜一點的,就是本文剛開始時完成的那個拷貝一個順序數據集到一個分區數據集下,使之成爲分區數據集的成員,用JCL完成之,代碼如下:

 

 ***************************** Top of Data **************************

 //CCM417C JOB ,JOHNNY,MSGLEVEL=(1,1),NOTIFY=CCM417                 

 //**************************************************               

 //*  THIS JCL COPY A PS DS TO A PDS,AND MAKE IT TO *               

 //*  BE THE MEMBER OF THAT PDS !                   *               

 //**************************************************               

 //COPSTEP EXEC PGM=IEBGENER                                        

 //SYSPRINT DD SYSOUT=*                                             

 //SYSUT1 DD DSN=CCM417.COPYSOR.PS,DISP=SHR                          

 //SYSUT2 DD DSN=CCM417.COPYDIR.PO(MEM1),DISP=(NEW,CATLG,DELETE),   

 //  SPACE=(TRK,(1,1)),RECFM=FB,LRECL=80,UNIT=SYSDA                 

 //SYSIN DD DUMMY                                                   

 //                                                                  

 **************************** Bottom of Data ************************

 

 

因爲源數據集CCM417.COPYSOR.PS在上一個做上一個例子的時候就已經建好了,所以我只建了目標分區數據集 CCM417.COPYDIR.PO 然後我想它應該會自動完成COPY,將源數據集拷進去放下就得了,但是卻沒有成功,然後我去SDSF下面,用FIND 命令找到我的任務,在前面打?,然後發現有三個數據集:JESMSGLG,JESJCL,JESYSMG,其中在第一個數據集前面用S進去看到了-JES2 JOB LOG,我覺得其中沒有什麼重要的信息,然後到第二個中,原來就是我的源JCL代碼,最後第三個看名字就比較靠譜,進去果然找到了重要信息:

IGD17101I DATA SET CCM417.COPYDIR.PO                

NOT DEFINED BECAUSE DUPLICATE NAME EXISTS IN CATALOG

RETURN CODE IS 8 REASON CODE IS 38 IGG0CLEH         

哦,原來不能往已有的分區數據集中拷東西進去,那我想這麼做的時候又怎麼辦呢?先不管,先把自己建的那個分區數據集刪掉又SUBMIT了一次,然後就正常了,系統替我新建了一個分區數據集,然後在其中生成了一個MEM1的成員,然後其中把源數據集的內容拷進去了。當然上面的代碼中要改一下:

//  SPACE=(TRK,(1,1)),RECFM=FB,LRECL=80,UNIT=SYSDA 

這句要改成:

//  SPACE=(TRK,(1,1,1)),RECFM=FB,LRECL=80,UNIT=SYSDA 

但是還是那個問題:我想把一個源數據集拷貝到一個已存在的分區數據集中,使之成爲成員該怎麼辦呢?

那個問題且先放下,不久應該就可以解決。因爲我知道有一個系統實用程序是IEBCOPY,估計使用它可以完成這個任務。

下面再來個IEBGENER的:

從一個順序數據集中讀取數據顯示出來:

 

****** ***************************** Top of Data ******************

000100 //CCM417D JOB ,JOHNNY,MSGLEVEL=(1,1),NOTIFY=CCM417         

000110 //*************************************************    

000120 //* THIS JCL READ AND DISPLAY A PS DS DATA            *    

000150 //*************************************************    

000200 //COPSTEP EXEC PGM=IEBGENER                                

000300 //SYSPRINT DD SYSOUT=*                                     

000400 //SYSUT1 DD DSN=CCM417.COPYSOR.PS,DISP=SHR                 

000500 //SYSUT2 DD SYSOUT=*                                       

000600 //SYSIN DD DUMMY                                           

000700 //                                                          

****** **************************** Bottom of Data ****************

 

這個程序的輸出是由SYSUT2所指定的地點,也就是要看結果得去SDSFST下面然後找到你的數據集,進入?選項,然後就有一項爲SYSUT2,S進去就看到了在數據集中的你所想要顯示的內容。

算了,今天就看到這兒,明天還要去公司辦理入職手續,哇卡卡,不知道大家穿上正裝一個個會是什麼熊樣哈。。。

 
發佈了116 篇原創文章 · 獲贊 8 · 訪問量 31萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章