機械翻訳について

値リストを使用したセッション変数の初期化

セッション変数初期化ブロックを構成して、値リストを使用してセッション変数を初期化できます。

値リストを使用してセッション変数を初期化するように初期化ブロックを構成するには、初期化ブロック構成で「問合せ戻し」フィールドで「変数名および値」を選択する必要があります。

「変数名および値」フィールドを選択すると、「問合せ戻し」フィールドが表示されます。 「キャッシュ問合せ結果」オプションを選択すると、問合せ結果がメイン・メモリー・キャッシュになります。 Oracle Analytics問合せエンジンは、後続のセッションでキャッシュされた結果を使用します。 これにより、セッションの起動時間を短縮できます。 ただし、キャッシュされた結果には最新のセッション変数の値が含まれていない場合があります。 各新規セッションでセッション変数の最新セットとそれぞれに対応する値が必要な場合、このオプションをクリアする必要があります。

ノート:

エラーを回避するには、初期化ブロックにNULL値が含まれていないこと、および問合せの結果セットにNULL値が含まれていないことを確認してください。

このトピックの情報と例は、論理SQLに関連しています。 物理SQLを使用して値リストで変数を初期化する場合は、VALUELISTOF関数を使用します。

たとえば、変数LIST_OF_USERSのユーザー名に割り当てられている顧客を取得するには、初期化問合せで次のSQL文を使用します:

SELECT 'LIST_OF_USERS', USERID
FROM RW_SESSION_VARS
WHERE NAME='STATUS' AND VALUE='FULL-TIME'

このSQL文は、変数LIST_OF_USERSに、JOHNおよびJANEの値(たとえば、JOHN:JANE)のコロン区切りのリストを移入します。 次のWHERE句に示すように、フィルタでこの変数を使用できます。

WHERE TABLE.USER_NAME = valueof(NQ_SESSION.LIST_OF_USERS)

変数LIST_OF_USERSには、1つ以上の値のリストが含まれます。 次の文に示すように、物理IN句によって論理WHERE句が置き換えられます:

WHERE TABLE.USER_NAME IN ('JOHN', 'JANE')
Select 'LIST_OF_CUSTOMERS', Customer_Name from RW_CUSTOMERS where RW.CUSTOMERS.USER_NAME in (VALUELISTOF(NQ_SESSION.LIST_OF_USERS))

リスト内の特定の値でフィルタするには、ValueNameofを使用します。 最初の値は「1」ではなく「0」です。 たとえば:

Select 'LIST_OF_CUSTOMERS', Customer_Name from RW_CUSTOMERS where RW.CUSTOMERS.USER_NAME in '(ValueNameOf(0,NQ_SESSION.LIST_OF_USERS))