FILEQUERYファンクションは、ファイルに関する情報を返します。FILEQUERYファンクション・コールに指定する属性引数によって、返される情報の種類が決まります。
パラメータ
ファイル・ユニット番号またはファイル名。
ファイル・ユニット番号は、FILEOPENファンクションを事前にコールすることによって開かれたファイル、またはOUTFILEコマンドによって開かれたファイルに割り当てられる番号です。FILEOPENファンクションの戻り値またはOUTFILEUNITオプションの値を使用できます。
ファイル名は、移動または名前を変更するファイルの名前を指定するテキスト式です。そのファイルがカレント・ディレクトリにない場合、ファイルの名前にディレクトリ・オブジェクトの名前を含める必要があります。
注意: ディレクトリ・オブジェクトはデータベースで定義され、ディレクトリおよびディレクトリ内のファイルへのアクセスを制御します。CDA文を使用して、カレント・ディレクトリ・オブジェクトを特定および指定できます。使用するデータベース・ユーザー名で読取りおよび書込み可能なファイルがあるディレクトリ・オブジェクトへのアクセス権については、Oracle DBAに問い合せてください。 |
ファイル・ユニット番号を指定する必要がある属性と、ファイル名が必要な属性があります。どちらを指定しても構わない属性もあります。詳細は、表7-10「FILEQUERYによって返されるファイル属性」を参照してください。
ファイルに関して取得する情報の種類を指定します。FILEQUERYの戻り値のデータ型は、指定する属性によって異なります。指定する属性はファイルに対応する必要があり、対応しない場合はエラーが発生します。表7-10「FILEQUERYによって返されるファイル属性」に、attrib-argに有効なキーワードをリストし、各キーワードを説明し、file-id引数にファイル名のファイル・ユニット番号を指定するかどうかを示します。
表7-10 FILEQUERYによって返されるファイル属性
キーワード | 戻り値 | 戻り値のデータ型 | file-idパラメータ |
---|---|---|---|
APPEND |
ファイルが最後に書込み用で開かれている場合は |
|
ファイル・ユニット番号 |
BMARGIN |
下マージンになる空白行の数。 |
|
ファイル・ユニット番号 |
CHANGED |
ファイルのアーカイブ・ビットが設定されている場合は |
|
ファイル・ユニット番号またはファイル名 |
EOF |
ファイルの末尾に達した場合は |
|
ファイル・ユニット番号 |
EXISTS |
ファイルが存在する場合は |
|
ファイル・ユニット番号またはファイル名 |
FILENAME |
ファイル・ユニットに関連付けられたファイル名。 |
|
ファイル・ユニット番号 |
LINENUM |
現行の行数。PAGINGがオンの場合は改ページのたびにリセットされ、PAGINGがオフの場合は増え続ける。ファイルが現在READモードで開かれている場合、現行レコード数を返す。 |
|
ファイル・ユニット番号 |
LINESLEFT |
ページの残りの行数。 |
|
ファイル・ユニット番号 |
LSIZE |
書込み用に開かれているファイルの場合、標準のOracle OLAPページ・ヘッダーの行の長さ( STDHDR プログラムを参照)。(STDHDRプログラムを参照。)読取り用に開かれているファイル・ユニットの場合、バイナリ入力ファイルのレコード長を示す。 |
|
ファイル・ユニット番号 |
NLS_CHARSET |
ファイル・ユニットに使用されているキャラクタ・セット。詳細は、FILEOPENファンクションを参照。 |
|
ファイル・ユニット番号 |
NUMBYTES |
ファイルのサイズ(バイト単位)。 |
|
ファイル・ユニット番号またはファイル名 |
ORIGIN |
作成されたファイルがあるコンピュータのタイプ。ORIGIN属性が関連するのは読取り用に開かれたファイルのみで、FILESET文を発行するときに設定される。 |
|
ファイル・ユニット番号 |
PAGENUM |
現行のページ数。「ページング属性」を参照。 |
|
ファイル・ユニット番号 |
PAGEPRG |
出力がページングされる際にヘッダーを生成するOracle OLAPプログラムまたは文。「ページング属性」を参照。 |
|
ファイル・ユニット番号 |
PAGESIZE |
各ページの行数。「ページング属性」を参照。 |
|
ファイル・ユニット番号 |
PAGING |
出力がページで書式化される場合は |
|
ファイル・ユニット番号 |
PAUSEATPAGEEND |
各ページの終わりでOracle OLAPが一時停止する場合は |
|
ファイル・ユニット番号 |
R[EAD] |
読取り用にファイルが開かれている場合は |
|
ファイル・ユニット番号 |
RO |
ファイルの読取り専用属性が設定されている場合は |
|
ファイル・ユニット番号またはファイル名 |
TABEXPAND |
ファイルがFILEGETまたはFILEREADによって読み取られるときにタブ文字が拡張される場合は |
|
ファイル・ユニット番号またはファイル名 |
TMARGIN |
上部余白になる空白行の数。 |
|
ファイル・ユニット番号 |
UNIT |
指定されたファイル名のファイル・ユニット。 |
|
ファイル名 |
W[RITE] |
書込み用にファイルが開かれている場合は |
|
ファイル・ユニット番号 |
使用上の注意
タブの処理
ソース・ファイルのタブ文字がFILEGETまたはFILEREADによって読み取られるときに拡張されるようにするには、FILESETコマンドでTABEXPAND属性を指定できます。TABEXPANDがゼロの場合、タブ文字は拡張されません。0より大きい値は、タブ間の距離のバイト数を示します。TABEXPANDのデフォルト値は8です。
ページング属性
ページング属性は、特に指定のないかぎり、PAGINGがYES
に設定されていて、WRITEモードで現在開かれているファイル(FILEOPEN(...WRITE)やFILEOPEN(...APPEND)で開かれたファイルなど)にのみ適用されます。FILESETコマンドによって任意のページング属性を設定できます。
ワイルドカード文字
(UNIXのみ)UNIXファイル名の問合せにおいて、EXISTS属性引数による検索でワイルドカード文字(* ?
)を使用できます。
例
例7-93 書込み用に開かれたファイルのページング・オプションの設定
次の各文は、書込み用に開かれたファイルに対してページング・オプションがどのように設定されているかを表示します。
DEFINE fil.unit INTEGER fil.unit = FILEOPEN('REPORT' WRITE)
次の文
SHOW FILEQUERY(fil.unit PAGING)
によって、次の出力が生成されます。
YES
次の文
SHOW FILEQUERY(fil.unit PAGESIZE)
によって、次の出力が生成されます。
66
次の文
SHOW FILEQUERY(fil.unit TMARGIN)
によって、次の出力が生成されます。
5
次の文はファイルを閉じます。
FILECLOSE fil.unit