WHERE句の使用

CREATE CACHE GROUP文内のキャッシュ表定義には、特定のキャッシュ・グループ・タイプについて、TimesTenデータベースにキャッシュする行を制限するWHERE句を含めることができます。

また、特定のキャッシュ・グループ・タイプの場合、LOAD CACHE GROUP文、UNLOAD CACHE GROUP文、REFRESH CACHE GROUP文またはFLUSH CACHE GROUP文にWHERE句を指定することもできます。LOAD CACHE GROUP文やREFRESH CACHE GROUP文などのいくつかの文では、キャッシュ表定義のWHERE句がLOAD CACHE GROUP文またはREFRESH CACHE GROUP文のWHERE句より前に評価される連結WHERE句が発生する場合があります。

キャッシュ表定義およびキャッシュ・グループ処理で使用されるWHERE句には、次の制限が適用されます。

  • CREATE CACHE GROUP文のキャッシュ表定義にWHERE句を指定できるのは、読取り専用キャッシュ・グループおよびユーザー管理キャッシュ・グループの場合のみです。

  • 自動リフレッシュを使用する静的キャッシュ・グループ以外では、LOAD CACHE GROUP文にWHERE句を指定できます。

    LOAD CACHE GROUPの詳細は、「キャッシュ・グループの手動によるロードおよびリフレッシュ」を参照してください。

  • 自動リフレッシュを使用するキャッシュ・グループ以外では、REFRESH CACHE GROUP文にWHERE句を指定できます。

    REFRESH CACHE GROUP文の詳細は、「キャッシュ・グループの手動によるロードおよびリフレッシュ」を参照してください。

  • TimesTenキャッシュ表でコミットされた変更を、キャッシュされたOracle Database表にフラッシュできるユーザー管理キャッシュ・グループでは、FLUSH CACHE GROUP文にWHERE句を指定できます。

    FLUSH CACHE GROUP文の詳細は、「ユーザー管理キャッシュ・グループのフラッシュ」を参照してください。

  • CREATE CACHE GROUP文のWHERE句には、副問合せを使用できません。したがって、各WHERE句では、キャッシュ表定義内にある表以外の表を参照できません。ただし、LOAD CACHE GROUP文、UNLOAD CACHE GROUP文、REFRESH CACHE GROUP文またはFLUSH CACHE GROUP文のWHERE句には、副問合せが含まれる場合があります。

  • WHERE句に副問合せが含まれる場合を除いて、LOAD CACHE GROUP文、REFRESH CACHE GROUP文またはFLUSH CACHE GROUP文のWHERE句で参照できるのは、キャッシュ・グループのルート表のみです。

  • キャッシュ・グループの作成、ロード、リフレッシュ、アンロードまたはフラッシュ時にWHERE句で参照されるすべての表および列は、完全修飾されている必要があります。たとえば、次のようにします:

    owner.table_name and owner.table_name.column_name