バッチJOBで文字列検索

By 渡辺 - Posted: 2009/09/05 Last updated: 2010/03/07 - Leave a Comment
印刷用ページの表示 印刷用ページの表示
データセットにある特定の文字列を探したいとき、たいていは、ISPF 3.14画面を利用して
検索されると思います。
SEARCH01
ISPFの前景処理なので、検索している間は当然、そのセッションは使えませんよね。
大きいデータセットを検索する時や、複数データセットを検索する時には不向きだったりします。
そんなときには、バッチJOBで検索してみましょう。
ただし、場合によっては、CPUをかなり消費するケースがありますので注意しましょう。

処理パラメータがいっぱいありますので、まずは、全行・全列を、くまなく探すサンプルJCLを
ご紹介します。
//SEARCH   EXEC PGM=ISRSUPC,PARM=('SRCHCMP,ANYC')
//NEWDD     DD  DISP=SHR,DSN=検索対象データセット
//OUTDD     DD  SYSOUT=*
//SYSIN     DD  *
 SRCHFOR '検索したい文字列'
/*
//
EXEC文に指定している”SRCHCMP”は、検索をしたい時に指定するパラメータです。
“ANYC”は、小文字・大文字を区別することなく検索をするためのパラメータです。

この例では、対象データセットがPOデータセットだった場合、すべてのメンバーを
検索対象としてくれます。
検索したいメンバーを指定したい場合は、”SELECT”パラメータをSYSINに指定します。

検索した文字列がヒットすると、リターンコードが01になります。
ヒットしないと、リターンコードが00になりますので、検索の結果をリターンコードで
判別することもできます。

また、SYSINに”PROCESS LITNM=ISRSLJPN”を指定すると、下記のように日本語表示に
なります。
*このパラメータを使用したときには、ダブルバイトの文字列が含まれるため、
 JOBLOGを参照するときには、文字化けしないように”S”ではなく”SB”で参照しましょう。
SEARCH02
必要な方は、Publications ホームから対話式システム生産性向上機能 (ISPF) ユーザーズ・ガイド 第 2 巻 z/OS バージョン 1 リリース 10.0 (資料番号(SC88-8966-07))をダウンロードしてみてください。
 *上記マニュアルの”付録A. SuperC の解説”(509ページ)をご参照ください。

英語のマニュアルになってしまいますが、
A.0 “z/OS V1R10.0 ISPF User’s Guide Vol II” IBM Library Serverのサイトも参照してみてください。

Posted in ありがたいサンプルJCL • • Top Of Page