不透明なビューのデプロイ
不透明なビューとは、SELECT文で構成されている物理レイヤーの表です。
新しい表が必要な場合、物理表またはマテリアライズド・ビューを作成する必要があります。不透明なビューは、他にソリューションがない場合にのみ使用してください。
データベースとのメタデータ交換による問合せパフォーマンスの向上を参照してください。
このセクションには次のトピックが含まれます:
不透明なビューのデプロイについて
「ビューのデプロイ」ユーティリティを使用して、データ・ソースに不透明なビューをデプロイします。
リポジトリでは、不透明なビューは、データ・ソースのビュー表として表示されますが、不透明なビューはデプロイされるまで実際には存在しません。XLSデータ・ソースや非リレーショナル・データ・ソースなどのデータ・ソースでは、不透明なビューはサポートされておらず、ビューをデプロイするためのユーティリティも実行できません。
デプロイ後、不透明なビューはデプロイされたビューと呼ばれます。不透明なビューは、デプロイせずに使用できますが、Oracle BIサーバーで不透明なビューが検出されると、より複雑な問合せの生成が必要になります。
特定のデータ・ソースで不透明なビューがサポートされていることを確認するには、「データベース」ダイアログの「機能」タブで、CREATE_VIEW_SUPPORTED
SQL機能が選択されていることを確かめます。データ・ソースでサポートされるSQL機能を参照してください。
不透明なビュー・オブジェクトのデプロイ
オフライン・モードで、「ビューのデプロイ」ユーティリティは、データ・ソースからのインポート時にODBCデータ・ソースで使用できます。
Oracleのネイティブ(クライアント)ドライバも、オフライン・モードでのビューのデプロイに対応しています。オンライン・モードでは、ビューのデプロイは、サポートされているデータ・ソースで、サーバーを通したインポートを使用して実行できます(クライアント上での設定は無視されます)。
Create View SELECT文の使用
リポジトリの物理レイヤーで不透明なビューをデプロイするためのSQL文は、サポートされているデータ・ソースで使用できます。
不透明なビューをサポートするデータ・ソースを判別するには、システム管理者に問い合せるか、データ・ソースのドキュメントを参照してください。
定義には、リポジトリ変数のみを使用します。ビュー定義にセッション変数が含まれていると、エラーが生成されます。
構文
CREATE VIEW view_name AS select_statement,
説明:
-
select_statementは、不透明なビュー・オブジェクトでユーザーが入力したSQL文です。SQL文が無効な場合、create view文はビューのデプロイ時に失敗します。
-
view_nameは、
schema.viewname
とviewname
のいずれかの形式です。接続プールの設定によって、スキーマ名が追加されるかどうかが決まります。
SELECT文で行単位の初期化変数を参照するには、VALUELISTOF
関数を使用します。たとえば、変数LIST_OF_USERS
内のユーザー名に割り当てられた顧客を取得するためには、次の構文を使用します。
-
RW.CUSTOMERS.USER_NAME in (VALUELISTOF(NQ_SESSION.LIST_OF_USERS))
-
リストに表示されている指定された値のみでフィルタをするには、
ValueNameof
を使用して、次の例のようにします。最初の値は「1」ではなく「0」です。RW.CUSTOMERS.USER_NAME in '(ValueNameOf(0,NQ_SESSION.LIST_OF_USERS))
不透明ビュー・オブジェクトの場合、右クリック・メニューには、「ビューのデプロイ」オプションが含まれます。「ビューのデプロイ」を選択すると、Create View SQL文が実行され、デプロイされたビュー・オブジェクトの作成が試行されます。ビューのデプロイを開始する方法と各方法の結果について、次にまとめます。
-
1つの不透明ビュー・オブジェクトを右クリックします。「ビューのデプロイ」を選択すると、Create View SQL文が実行され、オブジェクトのデプロイされたビューの作成が試行されます。
-
複数のオブジェクトを右クリックします。選択したオブジェクトのうち少なくとも1つが不透明ビュー・オブジェクトの場合、右クリック・メニューには「ビューのデプロイ」オプションが含まれます。「ビューのデプロイ」を選択すると、Create View SQL文が実行され、修飾オブジェクトのデプロイされたビューの作成が試行されます。
-
物理スキーマまたは物理カタログを右クリックします。対象のスキーマまたはカタログに不透明ビュー・オブジェクトが存在する場合、右クリック・メニューには「ビューのデプロイ」オプションが含まれます。「ビューのデプロイ」を選択すると、すべての修飾オブジェクトに対するCreate View SQL文が実行され、選択したスキーマまたはカタログに含まれる修飾オブジェクトのデプロイされたビューの作成が試行されます。
デプロイ時に名前がビューに割り当てられます。事前割当ての名前を変更する場合、新しい名前には18文字以下の英数文字を使用する必要があります。これらのガイドラインに従わないと、オブジェクト名は、次の名前変換アルゴリズムを使用して有効な名前に自動的に変換されます。
-
英数字以外の文字はすべて削除されます。
-
ステップ1の後に16文字以上ある場合は、最初の16文字が保持されます。
-
対応するコンテキストで名前を一意にするために、00 - 99の2桁の数字が名前に追加されます。
デプロイメント・プロセスが完了すると、次のことが起こります。
-
正常にデプロイされたビューとデプロイに失敗したビューがリストで表示されます。
-
失敗したデプロイメントの場合、リストに簡単な理由が表示されます。
-
デプロイメントが正常に実行された場合、不透明ビューのオブジェクト・タイプが「選択」から「なし」に変わり、デプロイされたビューは通常の表として扱われます。
オブジェクト・タイプを「選択」に戻すと、関連付けられている不透明ビューがデータ・ソースから削除されるか、エラー・メッセージが表示されます。「不透明なビューまたはデプロイされたビューを削除するタイミング」を参照してください。
-
正常にデプロイされたビューについては、管理ツールの「ビュー」アイコンが、「デプロイされたビュー」アイコンに変わります。
-
管理ツールの物理レイヤーで、デプロイする不透明ビューを右クリックします。
-
右クリック・メニューで、「ビューのデプロイ」を選択します。
-
(オプション) 「ビューのデプロイメント - ビューのデプロイ」ダイアログの「新規表名」列で、デプロイされたビューの新しい名前を変更します。
変更がネーミング・ルールに準拠していない場合は、別の名前が割り当てられ、ダイアログが再度表示されて、その名前を受け入れることも変更することもできます。このアクションは、すべての名前が検証に合格するまで繰り返されます。
1つまたは複数のビューをデプロイしない場合は、該当する行をクリアします。
-
「接続プールの選択」ダイアログで、接続プールを選択して「選択」をクリックします。
-
「ビューのデプロイメント・メッセージ」ダイアログでは、「検索」および「再検索」を使用したビューの検索やコンテンツのコピーを実行します。
-
作業が完了したら、「OK」をクリックします。
デプロイされたビューのアンデプロイ
デプロイされたビューに対して「ビューのアンデプロイ」ユーティリティを実行すると、ビューは削除され、ビュー表は元のSELECT
文が指定された不透明なビューに戻ります。
不透明なビューまたはデプロイされたビューを削除するタイミング
リポジトリの不透明なビュー・オブジェクトまたはデプロイされたビュー・オブジェクトを削除するには次のガイドラインに従います。
-
リポジトリのデプロイされていない不透明なビューの削除
デプロイされていない不透明なビューは、リポジトリから削除できます。
-
デプロイされたビューの削除
不透明なビューをデプロイすると、物理的にデータ・ソースとリポジトリの両方にビュー表が作成されます。このため、ビューを削除する前にそのビューをアンデプロイする必要があります。管理ツールの「ビューのアンデプロイ」ユーティリティを使用します。このユーティリティにより、不透明なビューがバックエンド・データ・ソースから削除され、「表タイプ」が「なし」から「選択」に変わり、リポジトリの物理レイヤーのオブジェクトの
SELECT
文がリストアされます。重要:
データ・ソースのビュー表を手動で削除しないでください。この表を削除すると、Oracle BIサーバーで、そのビュー・オブジェクトを問い合せることができなくなります。ビューをアンデプロイすると、データ・ソースからそのビューが自動的に削除されます。