【2009/09/05 original author WATANABE】
データセットにある特定の文字列を探したいとき、たいていは、ISPF 3.14画面を利用して検索されると思います。
ISPFの前景処理なので、検索している間は当然、そのセッションは使えませんよね。 大きいデータセットを検索する時や、複数データセットを検索する時には不向きだったりします。そんなときには、バッチJOBで検索してみましょう。ただし、場合によっては、CPUをかなり消費するケースがありますので注意しましょう。
処理パラメータがいっぱいありますので、まずは、全行・全列を、くまなく探すサンプルJCLをご紹介します。
1 2 3 4 5 6 7 |
//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”で参照しましょう。
必要な方は、対話式システム生産性向上機能(ISPF)ユーザーズ・ガイド 第2巻(資料番号:SC19-3628)機械翻訳版の「SuperCリファレンス」をご覧下さい。(英文原典は同サイトにて言語をenglishに設定することで閲覧できます)
※2019/8/15及び2024/4/3マニュアル・サイトへのリンク及び関連する文の1部を、現状に合わせてサイト運営者にて1部修正しました
【2009/09/05 original author WATANABE】