ユーザー定義ビュー
CData JDBC Driver for API はユーザー定義ビューの使用をサポートします。これは事前設定されたクエリによって内容が決定されるユーザー定義の仮想テーブルです。ユーザー定義ビューは、ツール からドライバーを使用する場合など、ドライバーに発行されるクエリを直接制御できない場合に役立ちます。
ユーザー定義ビューを使用して、常に適用されるプレディケートを定義することができます。ビューへのクエリで追加のプレディケートを指定すると、それらはビューの一部としてすでに定義されているクエリと結合されます。
ユーザー定義ビューを作成する方法は2つあります。
- 必要なビューを定義したJSON 形式のコンフィギュレーションファイルを作成。
- DDL ステートメント。
コンフィギュレーションファイルでビューの定義
ユーザー定義ビューは、UserDefinedViews.json というJSON 形式のコンフィギュレーションファイルで定義されています。本製品 は、このファイルで指定されたビューを自動的に検出します。また、複数のビュー定義を持ち、UserDefinedViews 接続プロパティを使用して制御することも可能です。このプロパティを使用すると、指定されたビューのみが本製品 によって検知されます。
このユーザー定義ビューのコンフィギュレーションファイルは、各ルートエレメントがビューの名前を定義し、query と呼ばれる子エレメントを含むようにフォーマットされています。この子エレメントにはビューのカスタムSQL クエリが含まれています。
次に例を示します。
{ "MyView": { "query": "SELECT * FROM NorthwindOData WHERE MyColumn = 'value'" }, "MyView2": { "query": "SELECT * FROM MyTable WHERE Id IN (1,2,3)" } }UserDefinedViews 接続プロパティを使用して、JSON コンフィギュレーションファイルの場所を指定します。次に例を示します。
"UserDefinedViews", "C:\\Users\\yourusername\\Desktop\\tmp\\UserDefinedViews.json"
DDL ステートメントを使用したビューの定義
本製品 は、CREATE LOCAL VIEW、ALTER LOCAL VIEW、DROP LOCAL VIEW などのDDL ステートメントを介してスキーマを作成したり、変更したりすることもできます。
ビューの作成
DDL ステートメントを使用して新しいビューを作成するには、以下のようにビュー名とクエリを指定します。
CREATE LOCAL VIEW [MyViewName] AS SELECT * FROM Customers LIMIT 20;
JSON ファイルが存在しない場合は、上記のコードで作成されます。ビューはJSON コンフィギュレーションファイルで作成され、検出可能になります。JSON ファイルの場所はUserDefinedViews 接続プロパティで指定されます。
ビューの変更
既存のビューを変更するには、代わりに使用したい新しいクエリと一緒に既存のビュー名を指定します。
ALTER LOCAL VIEW [MyViewName] AS SELECT * FROM Customers WHERE TimeModified > '3/1/2020';
ビューはJSON コンフィギュレーションファイルで更新されます。
ビューの削除
既存のビューを削除するには、代わりに使用したい新しいクエリと一緒に既存のスキーマ名を指定します。
DROP LOCAL VIEW [MyViewName]
これにより、ビューがJSON コンフィギュレーションファイルから削除されます。クエリはできなくなります。
ユーザー定義ビューのスキーマ
ビューの名前がデータモデル内の実際のエンティティと衝突するのを避けるため、ユーザー定義ビューはデフォルトでUserViews スキーマで公開されます。UserViews で使用されるスキーマの名前を変更するには、UserViewsSchemaName プロパティを再設定します。ユーザー定義ビューの使用
例えば、UserViews.RCustomers という名前のユーザー定義ビューを持つSQL ステートメントは、Raleigh の顧客のみをリストします。SELECT * FROM Customers WHERE City = 'Raleigh';ドライバーへのクエリは次のようになります。
SELECT * FROM UserViews.RCustomers WHERE Status = 'Active';ソースへの効果的なクエリは次のようになります。
SELECT * FROM Customers WHERE City = 'Raleigh' AND Status = 'Active';これは、ビュークエリとビュー定義を効果的に組み合わせた、ユーザー定義ビューへのクエリの非常にシンプルな例です。これらのクエリをはるかに複雑なパターンで構成することが可能です。すべてのSQL 操作は両方のクエリでサポートされ、必要に応じて組み合わされます。