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_nameandowner.table_name.column_name