27.52 OPEN_QUERY_CONTEXTファンクションのシグネチャ1
ローカル・データベース、リモート・データベースまたはRESTデータソースの問合せコンテキストを開き、指定されたSQL問合せを実行します。
構文
APEX_EXEC.OPEN_QUERY_CONTEXT (
p_location in apex_exec_api.t_location,
--
p_table_owner IN VARCHAR2 DEFAULT NULL,
p_table_name IN VARCHAR2 DEFAULT NULL,
p_where_clause IN VARCHAR2 DEFAULT NULL,
p_match_clause IN VARCHAR2 DEFAULT NULL,
p_columns_clause IN VARCHAR2 DEFAULT NULL,
p_order_by_clause IN VARCHAR2 DEFAULT NULL,
p_include_rowid_column IN BOOLEAN DEFAULT FALSE,
--
p_sql_query IN VARCHAR2 DEFAULT NULL,
p_function_body IN VARCHAR2 DEFAULT NULL,
p_function_body_language IN t_language DEFAULT c_lang_plsql,
p_plsql_function_body IN VARCHAR2 DEFAULT NULL, -- Deprecated:
p_optimizer_hint IN VARCHAR2 DEFAULT NULL,
--
p_server_static_id IN VARCHAR2 DEFAULT NULL,
--
p_module_static_id IN VARCHAR2 DEFAULT NULL,
p_web_src_parameters IN t_parameters DEFAULT c_empty_parameters,
p_external_filter_expr IN VARCHAR2 DEFAULT NULL,
p_external_order_by_expr IN VARCHAR2 DEFAULT NULL,
--
p_sql_parameters IN t_parameters DEFAULT c_empty_parameters,
p_auto_bind_items IN BOOLEAN DEFAULT TRUE,
--
p_columns IN t_columns DEFAULT c_empty_columns,
--
p_filters IN t_filters DEFAULT c_empty_filters,
p_order_bys IN t_order_bys DEFAULT c_empty_order_bys,
p_aggregation IN t_aggregation DEFAULT c_empty_aggregation,
p_control_break IN t_control_break DEFAULT c_empty_control_break,
--
p_post_process_type IN t_post_processing 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_supports_binary_number IN BOOLEAN DEFAULT FALSE,
--
p_array_column_name IN VARCHAR2 DEFAULT NULL,
--
p_duality_view_static_id IN VARCHAR2 DEFAULT NULL,
p_json_source_static_id IN VARCHAR2 DEFAULT NULL )
RETURN t_context;
パラメータ
パラメータ | 説明 |
---|---|
p_location |
問合せコンテキストを開く場所。ローカル・データベース、リモート・データベースまたはRESTデータソースを指定できます。c_location_* 定数を使用します。
|
p_table_owner |
問合せタイプTABLEを使用する場合の表の所有者。 |
p_table_name |
問合せタイプTABLEを使用する場合の表の名前。 |
p_where_clause |
問合せタイプTABLEまたはGRAPHが使用されている場合に追加するWHERE句。 |
p_match_clause |
問合せタイプGRAPHを使用する場合に追加するMatch句。 |
p_columns_clause |
問合せタイプGRAPHを使用する場合に追加する列句。 |
p_order_by_clause |
問合せタイプTABLEを使用する場合に追加するORDER BY句。 |
p_include_rowid_column |
デフォルトはFALSE です。問合せタイプTABLE の使用時に、ROWID 列をSELECT リストに追加します。
|
p_sql_query |
問合せタイプにSQL問合せ を使用する場合に実行するSQL問合せ。
|
p_function_body |
SQL問合せを戻すファンクション本体。 |
p_function_body_language |
p_function_body に使用されるプログラミング言語。c_lang_* 定数を使用します。
|
p_plsql_function_body |
非推奨になりました。かわりにp_function_body を使用してください。
|
p_optimizer_hint |
APEXによって生成された最も外側のSQL問合せに適用される、オプティマイザ・ヒント。 |
p_server_static_id |
REST対応SQLを使用した場合(p_location でc_location_remote_db が使用されている場合など)のリモート・サーバーの静的ID。
|
p_module_static_id |
RESTデータソースの静的ID (p_location でc_location_rest_source が使用されている場合など)。
|
p_web_src_parameters |
RESTデータソースに渡されるパラメータ。 |
p_external_filter_expr |
RESTデータソースに渡される外部フィルタ式。 |
p_external_order_by_expr |
RESTデータソースに渡される外部ORDER BY式。 |
p_sql_parameters |
SQL問合せに使用する追加のバインド変数。 |
p_auto_bind_items |
APEXアイテム(ページおよびアプリケーション・アイテム)を自動的にバインドするかどうか。 |
p_columns |
選択される列。 |
p_filters |
問合せコンテキストに渡されるフィルタ。 |
p_order_bys |
問合せコンテキストに渡されるORDER BY式。 |
p_aggregation |
問合せに基づいて適用する集計(GROUP BY 、DISTINCT )。
|
p_control_break |
コンテキスト・データをループする際にコントロール・ブレークを返すかどうか。 |
p_post_process_type |
RESTデータソースの結果データに適用される後処理のタイプ。c_postprocess_* 定数を使用します。
|
p_first_row |
結果セットからフェッチする最初の行。 |
p_max_rows |
フェッチする行の最大数。 |
p_total_row_count |
総行数を求めるかどうか。 |
p_total_row_count_limit |
総行数計算の上限値。 |
p_supports_binary_number |
BINARY NUMBER列をc_data_type_number ではなくc_data_type_binary_number として戻すかどうか。
|
p_array_column_name |
RESTソース・データ・プロファイル内の配列列の名前。 |
p_duality_view_static_id |
二面性ビュー・ソースの静的ID。 |
p_json_source_static_id |
JSONソースの静的ID。 |
戻り値
ソース問合せの"カーソル"を表すコンテキスト・オブジェクト。
例
次の例では、問合せを実行し、結果セットを出力します。このサンプル・コードは、PL/SQL実行
リージョン内で使用できます。
DECLARE
l_context apex_exec.t_context;
l_idx_empno pls_integer;
l_idx_ename pls_integer;
l_idx_job pls_integer;
l_idx_hiredate pls_integer;
l_idx_mgr pls_integer;
l_idx_sal pls_integer;
l_idx_comm pls_integer;
l_idx_deptno pls_integer;
BEGIN
l_context := apex_exec.open_query_context(
p_location => apex_exec.c_location_local_db,
p_sql_query => 'select * from emp' );
l_idx_empno := apex_exec.get_column_position( l_context, 'EMPNO');
l_idx_ename := apex_exec.get_column_position( l_context, 'ENAME');
l_idx_job := apex_exec.get_column_position( l_context, 'JOB');
l_idx_hiredate := apex_exec.get_column_position( l_context, 'HIREDATE');
l_idx_mgr := apex_exec.get_column_position( l_context, 'MGR');
l_idx_sal := apex_exec.get_column_position( l_context, 'SAL');
l_idx_comm := apex_exec.get_column_position( l_context, 'COMM');
l_idx_deptno := apex_exec.get_column_position( l_context, 'DEPTNO');
WHILE apex_exec.next_row( l_context ) LOOP
sys.dbms_output.put_line( 'EMPNO: ' || apex_exec.get_number ( l_context, l_idx_empno ) );
sys.dbms_output.put_line( 'ENAME: ' || apex_exec.get_varchar2( l_context, l_idx_ename ) );
sys.dbms_output.put_line( 'MGR: ' || apex_exec.get_number ( l_context, l_idx_mgr ) );
END LOOP;
apex_exec.close( l_context );
RETURN;
EXCEPTION
WHEN others THEN
apex_exec.close( l_context );
RAISE;
END;
親トピック: APEX_EXEC