プライマリ・コンテンツに移動
Oracle® Databaseユーティリティ
12cリリース1 (12.1.0.2)
B71303-09
目次へ移動
目次
索引へ移動
索引

前
次

フィールド条件の指定

フィールド条件とは、論理レコード中のフィールドに関して、それが真か偽かを評価する条件を記述したものです。フィールド条件は、WHEN句、NULLIF句およびDEFAULTIF句で使用します。

注意:

句の評価に使用するフィールドにNULL値が含まれている場合、常に、その句はFALSEと評価されます。この機能については、「WHEN、NULLIFおよびDEFAULTIF句の使用例」で説明しています。

フィールド条件は、CONTINUEIF句の中で指定する条件と同様ですが、次の2つの点で異なります。第1に、フィールド条件で指定する位置は、物理レコードではなく論理レコードの位置を示します。第2に、論理レコード内の位置またはデータ・ファイル内のフィールド名(FILLERフィールドを含む)のいずれかを指定できます。

注意:

フィールド条件は、セカンダリ・データ・ファイル(SDF)のフィールドに基づくことができません。

field_condition句の構文は次のとおりです。

pos_spec句の構文は次のとおりです。

「フィールド条件の指定」では、フィールド条件句のパラメータについて説明します。位置指定パラメータの詳細は、「データ・フィールドの位置指定」を参照してください。

表10-4 フィールド条件句のパラメータ

パラメータ 説明

pos_spec

論理レコード中の比較対象フィールドの開始および終了位置です。それらの位置は小カッコで囲んでください。start-endと表記することも、start:endと表記することもできます。

開始位置の指定は、列番号、*(次の列)または*+n(次の列にオフセット分を加算)の形式で指定できます。

終了位置を省略した場合、フィールド長は、比較文字列の長さから判断されます。対象フィールドと比較文字列の長さが異なるときは、短い方を埋めるために文字列が追加されます。文字列の場合は空白が追加され、16進数のバイト列の場合は0(ゼロ)が追加されます。

start

論理レコード中の比較対象フィールドの開始位置です。

end

論理レコード中の比較対象フィールドの終了位置です。

full_fieldname

full_fieldnameには、ドット表記法を使用してフィールドのフルネームを指定します。フィールドcol2が列オブジェクトcol1の属性の場合、指示句の中でcol2 を参照するときは、col1.col2と表記してください。同じエンティティを参照または命名している列名およびフィールド名があっても、列名には、エンティティのフルネームを指定できない(ドット表記法がない)ため、別のものとして認識されます。

operator

比較演算子として、等価または不等価を示す記号を指定します。

char_string

比較フィールドとの比較に使用する文字列で、一重引用符または二重引用符で囲んで指定します。比較の結果が真の場合は、現在のレコードが表に挿入されます。

X'hex_string'

16進数の文字列で、16進数2桁がフィールドの1バイトに相当します。一重引用符または二重引用符で囲まれます。比較の結果が真の場合は、現在のレコードが表に挿入されます。

BLANKS

フィールドが完全に空白かどうかをテストできます。BLANKSの指定は、デリミタ付きデータのロード時にフィールド長が予測できない場合、または空白が複数あるマルチバイト・キャラクタ・セットを使用する場合に必要となります。