ASSIGN 節は、プログラム内のファイルの名前を、データ・ファイルの実際の外部名と関連付けます。
割り当て名-1 はデータ項目の名前ではありません。また、割り当て名-1 は、データ項目に含めることはできません。割り当て名-1 は、単に文字ストリングです。
2 番目の割り当て名は構文チェックされますが、プログラムの実行には何も影響しません。
割り当て名-1 のフォーマットは次のとおりです。
フォーマット: QSAM ファイル用割り当て名 >>-+------+--+----+--名前---------------------------------------->< '-ラベル--' '-S--'
フォーマット: VSAM 順次ファイル用割り当て名 >>-+------+--AS---名前------------------------------------------->< '-ラベル--'
フォーマット: 行順次、VSAM 索引付き、または VSAM 相対ファイル用割り当て名 >>-+------+--名前------------------------------------------------>< '-ラベル--'
VSAM の索引付きファイルおよび相対ファイルでは、 編成フィールドは必ず省いてください。
このファイルの DD ステートメントで指定された名前か、 ファイル割り振り情報が入った環境変数の名前の、いずれかでなければなりません。環境変数の指定の詳細について は、環境変数の割り当て名を参照してください。
名前 は、次の形成規則に従っている必要があります。
ユーザー定義語とリテラルのどちらの場合も、コンパイラーは名前 を大文字に変換したものをファイルの DD 名にします。
ソート・ファイルやマージ・ファイルでは、名前 はコメントとして扱われます。
SELECT 節の中でファイル名-1 によって参照されるファイル結合子が外部ファイル結合子である場合、 このファイル結合子を参照する実行単位の中のすべてのファイル制御項目は、 ASSIGN 節の中の割り当て名-1 の指定と矛盾がないようにする必要があります。QSAM ファイルや VSAM 索引付きファイルおよび VSAM 相対ファイルでは、最初の割り当て名-1 に指定する名前は同一にする必要があります。VSAM 順次ファイルでは、AS-名前 として指定する必要があります。
割り当て名-1 の名前部分は当初、DD 名として扱われます。この DD 名を使用して割り振られたファイルがない場合は、名前 は環境変数として扱われます。
COBOL コンパイラーは自動的に外部ファイル名を大文字に変換するため、 環境変数名を定義する場合は大文字のみを使用する必要があります。
この環境変数が存在していて、有効な PATH あるいは DSN オプション (以下で説明) が入っている場合は、ファイルがこのオプションで提供されている情報を使用して動的に割り振られます。
環境変数に有効な PATH あるいは DSN オプションが入っていないか、 動的割り振りが失敗した場合は、ファイルのオープンはファイル状況 98 で終わります。
環境変数の内容は、各 OPEN ステートメントでチェックされます。ファイルが 直前の OPEN ステートメントで動的に割り振られていて、環境変数の内容が 直前の OPEN 以降に変更されている場合は、現在、環境変数に設定されているオプション を使用して動的に割り振る前に、直前の割り振りは動的に割り振り解除されます。
実行単位が終了すると、COBOL ランタイム・システムはすべての自動的に生成された 動的割り振りを自動的に割り振り解除します。
QSAM ファイルの場合、環境変数には DSN オプションまたは PATH オプションが次のフォーマットで入っている必要があります。
フォーマット: QSAM ファイル、DSN オプションの環境変数 >>-DSN(データ・セット名-+---------+-)--+-----+--+--------+--------------> '-(メンバー名)-' +-NEW-+ +-TRACKS-+ +-OLD-+ '-CYL----' +-SHR-+ '-MOD-' >--+-----------------+--+----------------+--+-----------+-------> '-SPACE(nnn,mmmm)-' '-VOL(ボリューム通し番号)-' '-UNIT(タイプ)-' >--+-----------+--+---------------------+-----------------------> +-KEEP------+ '-STORCLAS(ストレージ・クラス)-' +-DELETE----+ +-CATALOG---+ '-UNCATALOG-' >--+-----------------+--+-------------------+------------------>< '-MGMTCLAS(管理クラス)-' '-DATACLAS(データ・クラス)-'
データ・セット名 は完全修飾名でなければなりません。このデータ・セットは一時データ・セットであってはなりません。つまり、& 記号で始まってはなりません。
データ・セット名 またはメンバー名 の後には、データ・セット属性を 任意の順序で指定できます。
DSN に続くオプション (例えば、NEW または TRACKS など) は、コンマあるいは 1 つ または複数のブランクで分離する必要があります。
環境変数の内容に入っている最初と最後のブランクは無視されます。 括弧内またはキーワードとキーワードの直後の左括弧の間にブランクをコーディングしてはなりません。
COBOL にはデータ・セット処理 (NEW、OLD、SHR、または MOD) のデフォルトがありませんが、ご使用のオペレーティング・システムによりデフォルトが提供される場合があります。ファイルのオープン時に予期しない結果が発生することがないように、QSAM ファイルの動的割り振りに環境変数を使用するときは、必ず DSN オプションとともに NEW、OLD、SHR、または MOD を指定してください。
データ・セット属性値の指定については、「z/OS MVS™ JCL 解説書」の DD ステートメントの説明を参照してください。
パス名 は、絶対パス名でなければなりません。つまり、スラッシュで始まっている必要があります。 パス名の指定については、「z/OS MVS JCL Reference」の PATH パラメーターの説明を参照してください。
環境変数の内容に入っている最初と最後のブランクは無視されます。 括弧内またはキーワードとキーワードの直後の左括弧の間にブランクをコーディングしてはなりません。
行順次ファイルの場合、環境変数には PATH オプションが次のフォーマットで入っている必要があります。
パス名 は、絶対パス名でなければなりません。つまり、スラッシュで始まっている必要があります。 パス名の指定については、「z/OS MVS JCL Reference」の PATH パラメーターの説明を参照してください。
環境変数の内容に入っている最初と最後のブランクは無視されます。 括弧内またはキーワードとキーワードの直後の左括弧の間にブランクをコーディングしてはなりません。
索引付き、相対、または順次 VSAM ファイルの場合、環境変数には DSN オプションが次のフォーマットで入っている必要があります。
フォーマット: VSAM ファイル、DSN オプションの環境変数 >>-DSN(データ・セット名)--+-----+-------------------------------------->< +-OLD-+ '-SHR-'
データ・セット名 には、基本クラスターのデータ・セット名を指定します。データ・セット名 は完全修飾名で、カタログに登録された事前定義済みの VSAM データ・セットを参照するものでなければなりません。
索引付きファイルに代替索引がある場合は、代替索引パスのそれぞれについて、 (上記のように) DSN オプションが入った追加の環境変数を定義する必要があります。 これらの環境変数の名前は、代替索引の DD 名に使用したのと同じ命名規則に 従う必要があります。つまり、次のようになります。
DSN に続くオプション (SHR など) は、コンマあるいは 1 つ または複数のブランクで分離する必要があります。
環境変数の内容に入っている最初と最後のブランクは無視されます。 括弧内またはキーワードとキーワードの直後の左括弧の間にブランクをコーディングしてはなりません。
COBOL にはデータ・セット処理 (OLD または SHR) のデフォルトがありませんが、ご使用のオペレーティング・システムによりデフォルトが提供される場合があります。ファイルのオープン時に予期しない結果が発生することがないように、VSAM ファイルの動的割り振りに環境変数を使用するときは、必ず DSN オプションとともに OLD または SHR を指定してください。