JCL需要續行時我們怎麼辦

2021-10-02 11:13:04 字數 1799 閱讀 8503

我們在寫jcl時經常會遇到續行的情況。因為z/os只認jcl中的前71列中的內容,後邊的都會被忽略。而我們的jcl語句加上引數通常會超過71個字元。這時候我們就需要按照jcl語法中的續行規則將一句jcl語句分成多行。以前我每次遇到的時候要麼找乙個jcl抄一下格式,要麼現去google一下,可是每次寫對了以後也就忘的差不多了。這次又是被折磨了一番。於是決定總結出來為自己方便為大家方便。

續行寫法主要分三種情況:

1、引數域需要續行

2、引數域中包含在引號中的內容需要續行

3、注釋部分的續行

先來個例子,然後再針對這個例子解釋這裡邊的規則。有任何乙個規則不符合都會導致jcl error哦!而且很難知道為什麼。

//dd1  dd   dsname=switch.level18.group12,unit=3390,

// volume=339023,space=(trk,(80,15)),disp=(,pass)

這是jcl種常用的dd語句。這個例子需要續行的原因主要是因為引數比較多,但是不涉及到某乙個引數無法在一行中完整的寫完的情況。所以這個就需要用到第一種引數域續行的規則。

規則一:前一行的引數域要寫在71列前完整寫完(包括逗號)。就比如這個例子中的「unit=3390,」這個引數必須寫完整並且逗號也寫在這一行,不能將這個引數拆分到兩行裡。

規則二:續寫行要以//開頭,並且必須在第一列和第二列。第三列必須是乙個空格。

規則三:需要在續行裡寫的引數項的第乙個字元必須要寫在第4列到第16列這個區域中。此例中是「volume339023」這個引數項。

還是先來例子:

//step1 exec                        pgm=iefbr14,parm=(parm1,'/dir1/dir2 

// /dir3/dir4/dir5/dir6/dir7/dir8/dir9/dir10/dir11/dir12/di

// r13/filenm')

這個情況是由於jcl語句中某乙個引數項的值本身就超過了71列的限制,即使給這個引數項單獨一行也是不夠寫的。這種情況是要用另乙個規則來寫。我這次碰到的問題就是我並不知道這種寫法和第一種寫法的區別而給我新增了很多麻煩。

規則一:上一行直接寫到第71列,71列前的所有內容都認為是有效字元,包括空格在內。第72列為空格。

規則二:續行的第一第二列輸入'//'.

規則三:繼續的內容要從第16列開始。這個必須遵守,否則jcl解釋會是不一樣的。

//stp4  exec proc=billing,cond.paid=((20,lt),even),

// cond.late=(60,gt,find),

// cond.bill=((20,ge),(30,lt,chge)) this statement calls x

// the billing procedure and specifies return code tests x

// for three procedure steps.

這個其實相對比較簡單些。這個例子中是第三行到第五行有個比較長的注釋需要續行。規則如下:

規則一:上一行內容可以在72列前的任何一列結束,第72列輸入乙個非空格的字元

規則二:第一列第二列輸入』//『, 第3列必須是空格

規則三:續行內容可以從第3列以後的任何一列開始。

參考資料:

我們怎麼辦

最近在讀 中國怎麼辦 前兩個月開始關注牛刀的部落格使我對三劍客的經濟觀點有了乙個大體的了解,我記不住那麼多經濟資料,只掌握些許經濟學知識的大腦更加分析不出來資料背後代表了什麼。但從書中我還是能夠清晰的感到不妙,出口很不妙,房價很不妙,就業很不妙,體制有問題,未來不樂觀。據說 中國怎麼辦 出版之後 決...

失眠 我們該怎麼辦?

失眠通常指患者對睡眠時間和或質量不滿足並影響白天社會功能的一種主觀體驗,包括入睡困難 時常覺醒及 或 晨醒過早。其實,失眠主要是因為很多人在生活中的緊張壓力造成的,只有對失眠原因和環境深入了解,採取一些有效的措施來進行 這樣才能緩解患者的失眠症狀.自責心理,過於自責就是在為自己施加壓力,有些人因為一...

迷茫時候我們怎麼辦

人都有迷茫的時候,不管是生活上,還是工作上。都會有那麼一段時間裡,茫茫四望卻找不到方向。這個時候,我們都希望可以有個人來告訴自己該怎麼辦。今天分享一篇好文章,告訴你迷茫時要如何自處。1 人的一生該怎麼度過。這麼個哲學問題,每個人都思考過很多。是在小城市安居樂業,還是在大城市闖蕩。是留在安逸的單位裡,...