GET_DELEGATED_SQLSENTENCE

説明

ストアドプロシージャ GET_DELEGATED_SQLSENTENCE は、特定のクエリを実行するときに実行エンジンがデータベースにプッシュダウンする SQL ステートメントを返します。

そのためには、このクエリが以下の条件に従っている必要があります。

  1. クエリが SELECT ステートメントである。

  2. クエリを単一の 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'')'

キャッシュが無効になっていた場合にソースに委任されるクエリを取得します。