GET_DELEGATED_SQLSENTENCE¶
説明
ストアドプロシージャ GET_DELEGATED_SQLSENTENCE
は、特定のクエリを実行するときに実行エンジンがデータベースにプッシュダウンする SQL ステートメントを返します。
そのためには、このクエリが以下の条件に従っている必要があります。
クエリが SELECT ステートメントである。
クエリを単一の JDBC データソースに完全にプッシュダウンできる。
構文
GET_DELEGATED_SQLSENTENCE (
vdp_query : text
)
このプロシージャは、以下のフィールドを返します。
database_name
: データソースが存在するデータベースの名前。datasource_name
: SQL がプッシュダウンされるデータソースの名前。delegated_query
: 実行エンジンがデータソースの基盤となるデータベースで実行する SQL。
delegated_query
は、JDBC データソースのソース構成プロパティ Allow literals as parameter が、その実際の値に関係なく false であるものと仮定して生成されます。
使用に関する注意
このプロシージャに渡されるクエリでは
CONTEXT
句を使用できます。クエリに含まれるビューのキャッシュモードは、結果に影響を与えます。たとえば、JDBC 基本ビューと XML 基本ビューの結合ビューに対するクエリを渡すと、このプロシージャはエラーを返します。このクエリが上記の条件を満たしていないからです。ただし、このビューのキャッシュが有効になっている場合、このプロシージャは、実行エンジンがキャッシュデータソースにプッシュダウンする SQL を返します。
例
SELECT *
FROM GET_DELEGATED_SQLSENTENCE()
WHERE vdp_query = 'SELECT int_field, text_field FROM join_view CONTEXT(''cache''=''off'')'
キャッシュが無効になっていた場合にソースに委任されるクエリを取得します。