表検証の値セット内のバインド変数の考慮事項
値セットをフレックスフィールドに割り当てると、WHERE句内でバインド変数を使用できます。
次のバインド変数は、フレックスフィールドの要素を参照します。
-
:{SEGMENT.<segment_code>}
-
:{CONTEXT.<context_code>;SEGMENT.<segment_code>}
-
:{VALUESET.<value_set_code>}
-
:{FLEXFIELD.<internal_code>}
-
:{PARAMETER.<parameter_code>}
セグメント・コード
:{SEGMENT.<segment_code>}
このバインド変数は、<segment_code>
によって識別されるセグメントのIDまたは値を参照します。 IDを参照している場合、値セットはID検証済です。 値を参照している場合、値セットはID検証済ではありあません。 バインド値のデータ型は、セグメントの列のデータ型と同じです。
付加フレックスフィールドおよび拡張可能フレックスフィールドのいずれの場合でも、このセグメントはソース・セグメントと同じコンテキスト内になければなりません。 ソース・セグメントにはWHERE句が含まれます。 付加フレックスフィールドの場合、このセグメントがグローバルであれば、ソース・セグメントもグローバルでなければなりません。
このセグメントは、このバインド変数のターゲット・セグメントの連番よりも小さい連番を持っていなければなりません。 現在のフレックスフィールド・コンテキストに、一致するセグメントが存在していなければなりません。
このバインド変数は、有効な値のセットが、別のセグメントの値に依存している場合に便利です。 たとえば、CITIES表から選択する値は、選択された国に依存している場合があります。 SEGMENT1に国値が含まれている場合、CITIES表に対するWHERE句は<country_code> = :{SEGMENT.SEGMENT1}
となります。
コンテキスト・コード
:{CONTEXT.<context_code>;SEGMENT.<segment_code>}
このバインド変数は、拡張可能フレックスフィールドに対してのみ有効で、ターゲット・セグメント(WHERE句があるセグメント)とは異なるコンテキストにあるセグメントのID (値セットがID検証済の場合)または値(ID検証済でない場合)を参照します。
-
コンテキストは
<context_code>
により識別されます。これは同じカテゴリ内または先祖のカテゴリ内になければなりません。 これは複数行コンテキストにすることはできません。 -
セグメントは
<segment_code>
により識別されます。 バインド値のデータ型は、セグメントの列のデータ型と同じです。
拡張可能フレックスフィールドのフレームワークでは、相互コンテキスト・バインド・パラメータで定義されたセグメントの不一致値に関連する追加の検証は実行されません。 管理者は正しいペアのセグメント値を移入する必要があります。
このバインド変数は、有効な値のセットが、別のコンテキストのセグメントの値に依存している場合に便利です。 たとえば、「コンプライアンスと証明書」コンテキストにあるセグメントに対してCERTIFICATION表から選択する値は、「製造」コンテキストの「国」セグメントの値に依存する場合があります。
値セット・コード
:{VALUESET.<value_set_code>}
このバインド変数は、value_set_code
によって識別される値セットに割り当てられたセグメントのID (値セットがID検証される場合)または値(ID検証されない場合)を参照します。 バインド値のデータ型は、セグメントの列のデータ型と同じです。
このセグメントは、このバインド変数のセグメントの連番よりも小さい連番を持っていなければなりません。 値セットに複数のセグメントが割り当てられている場合、以前に一致した最も近いセグメントが、バインド式の解決に使用されます。 現在のフレックスフィールド・コンテキストに、一致するセグメントが存在していなければなりません。
一連の有効な値が、別のセグメントにある値に依存しており、そのセグメント・コードが一定ではない場合には、このバインド変数が便利です。これは値セットが複数のコンテキストやフレックスフィールドで使用される場合などが該当します。 たとえば、CITIES表から選択する値は、選択された国に依存している場合があります。 国の値を含むセグメントの値セットがCOUNTRIESである場合、CITIES表のWHERE句は<country_code> = :{VALUESET.COUNTRIES}
などになります。
フレックスフィールドの内部コード
:{FLEXFIELD.<internal_code>}
このバインド変数は、値セットが使用されるフレックスフィールドの内部コード、または検証日付を参照します。 internal_codeは、次のいずれかでなければなりません。
-
APPLICATION_ID - この値セットが使用されるフレックスフィールドのアプリケーションID。 APPLICATION_IDのデータ型とその結果のバインド値はNUMBERです。
-
DESCRIPTIVE_FLEXFIELD_CODE - この値セットが使用されるフレックスフィールドの識別コード。 DESCRIPTIVE_FLEXFIELD_CODEのデータ型とその結果のバインド値はVARCHAR2です。 この文字列は、付加および拡張可能の両方のフレックスフィールドに使用することに注意してください。
-
CONTEXT_CODE - この値セットが使用されるフレックスフィールド・コンテキストのコンテキスト・コード。 CONTEXT_CODEのデータ型とその結果のバインド値はVARCHAR2です。
-
SEGMENT_CODE - この値セットが使用されるフレックスフィールド・セグメントの識別コード。 SEGMENT_CODEのデータ型とその結果のバインド値はVARCHAR2です。
-
VALIDATION_DATE - 現在のデータベース日付。 VALIDATION_DATEのデータ型とその結果のバインド値はDATEです。
フレックスフィールドのパラメータ
:{PARAMETER.<parameter_code>}
このバインド変数は、フレックスフィールド・パラメータの値を参照し、parameter_codeによりパラメータが識別されます。 結果のバインド値のデータ型は、パラメータのデータ型と同じになります。