この句を使用して、出力ファイル(BADFILE、DISCARDFILEまたはLOGFILE)の名前を指定します。ディレクトリ・オブジェクト名またはファイル名(あるいはその両方)を指定する必要があります。そのディレクトリ・オブジェクト名は、外部表にアクセスしているユーザーが書込み権限を所有しているディレクトリ・オブジェクトの名前です。このディレクトリ・オブジェクト名を指定しない場合、CREATE TABLE...ORGANIZATION EXTERNAL文のDEFAULT DIRECTORY句に対して指定した値が使用されます。
filenameパラメータは、ディレクトリ・オブジェクト内に作成するファイルの名前です。パラレル・ロードでファイル名を一意にするには、アクセス・ドライバで記号置換を行います。UNIXおよびWindowsオペレーティング・システムでサポートされる記号置換は、次のとおりです(その他のプラットフォームでは、別の記号が使用される場合があります)。
%pは、現行のプロセスのプロセスIDに置換されます。たとえば、アクセス・ドライバのプロセスIDが12345の場合、exttab_%p.logは、exttab_12345.log.となります。
%aは、現行のプロセスのエージェント番号に置換されます。エージェント番号は、外部表にアクセスしている各パラレル・プロセスに割り当てられた一意の番号です。この番号には、3文字になるように、左側に0が埋められます。たとえば、3番目のパラレル・エージェントがファイルを作成する場合、bad_data_%a.badをファイル名として指定した場合、エージェントはbad_data_003.badというファイルを作成します。
%%は、%に置換されます。ファイル名にパーセント符号が必要な場合、この記号置換が使用されます。
%文字が検出され、前述の文字以外の文字がその後に続く場合、エラーが返されます。
%pまたは%aを使用しないで出力ファイルに対して一意のファイル名を作成し、外部表にパラレルでアクセス中の場合、出力ファイルが破損するか、エージェントがファイルに書込みをできないという問題が発生する場合があります。
BADFILE (またはDISCARDFILEかLOGFILE)を指定しない場合、アクセス・ドライバでは、表の名前に_%pを付けたものがファイル名として使用されます。ファイルに対して拡張子がない場合は、デフォルトの拡張子が使用されます。デフォルトの拡張子は、不良ファイルでは.bad、廃棄ファイルでは.dsc、ログ・ファイルでは.log となります。