48.6 OPEN_QUERY_CONTEXTファンクション

このファンクションは、現在のリージョン・データを戻すAPEX_EXEC問合せコンテキストを戻します。

このファンクションは自律型トランザクション内で実行されます。

現時点ではネイティブ・リージョンのみがサポートされています。

構文

APEX_REGION.OPEN_QUERY_CONTEXT (
  p_page_id                IN NUMBER,
  p_region_id              IN NUMBER,
  p_component_id           IN NUMBER    DEFAULT NULL,
  p_view_mode              IN VARCHAR2  DEFAULT NULL,
  --
  p_additional_filters     IN apex_exec.t_filters DEFAULT apex_exec.c_empty_filters,
  p_outer_sql              IN VARCHAR2  DEFAULT NULL,
  --
  p_first_row              IN NUMBER    DEFAULT NULL,
  p_max_rows               IN NUMBER    DEFAULT NULL,
  p_total_row_count        IN BOOLEAN   DEFAULT FALSE,
  p_total_row_count_limit  IN NUMBER    DEFAULT NULL,
  --
  p_parent_column_values IN apex_exec.t_parameters DEFAULT apex_exec.c_empty_parameters )
  RETURN apex_exec.t_context;

パラメータ

パラメータ 説明
p_page_id リージョンが存在するページのID。
p_region_id 問合せコンテキストをオープンする特定のリージョンのID。
p_component_id 使用するリージョン・コンポーネントID。対話モード・レポートおよび対話グリッドの場合、これはカレント・アプリケーション・ページ内の保存されたレポートIDです。JETチャートの場合は、チャート・シリーズIDを使用します。
p_view_mode

レポートで使用できるビュー・タイプ。値は、APEX_IR.C_VIEW_REPORTAPEX_IR.C_VIEW_GROUPBY,またはAPEX_IR.C_VIEW_PIVOTです。

p_viewがnullの場合、現在レポートで使用されているビューを取得します。渡されたp_viewが現在のレポートに存在しない場合は、エラーが発生します。

p_additional_filters コンテキストに適用する追加のフィルタ。
p_outer_sql

リージョンSQL問合せをラップする外部SQL問合せ。#APEX$SOURCE_DATA#を使用して、リージョン・ソース(apex_exec.c_data_source_table_name定数)を参照します。

このパラメータが指定されていると、p_columnsパラメータは無効になります。このパラメータは、対話モード・レポートのCHART、GROUP BYまたはPIVOTビューをオーバーライドします。

p_first_row フェッチを開始する行索引。デフォルトは1です。
p_max_rows 取得する行の最大数。デフォルトは無制限です。
p_total_row_count 合計行数を取得するかどうかを決定します。デフォルトはFALSEです。p_outer_sqlパラメータとともに使用する場合は、p_outer_sql問合せの選択リストにAPEX$TOTAL_ROW_COUNT列を追加する必要があります。
p_total_row_count_limit 問合せを処理する行の上限。これは、対話モード・レポートの集計または順序付けに適用されます。デフォルトは制限なしです。
p_parent_column_values 対話グリッド・マスター/ディテール関係のディテール・グリッドの場合。このパラメータを使用して、マスター/ディテール親列の値を渡します。

次の例では、ページ1上の指定された保存済対話モード・レポートの問合せコンテキストを取得しデータをJSONとして出力する方法を示します。

DECLARE
       l_context apex_exec.t_context;
BEGIN
       l_context := apex_region.open_query_context (
              p_page_id => 1,
              p_region_id => 2505704029884282,
              p_component_id => 880629800374638220 );

       apex_json.open_object;
       apex_json.write_context( 'data', l_context );
       apex_json.close_object;
END;