20.32 OPEN_QUERY_CONTEXTファンクション
このファンクションは、ローカル・データベース、リモート・データベースまたはWebソース・モジュールの問合せコンテキストを開きます。
構文
FUNCTION 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_order_by_clause IN VARCHAR2 DEFAULT NULL,
p_include_rowid_column IN BOOLEAN DEFAULT FALSE,
--
p_sql_query IN VARCHAR2 DEFAULT NULL,
p_plsql_function_body IN VARCHAR2 DEFAULT NULL,
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_first_row IN PLS_INTEGER DEFAULT NULL,
p_max_rows IN PLS_INTEGER DEFAULT NULL,
--
p_total_row_count IN BOOLEAN DEFAULT FALSE,
p_total_row_count_limit IN NUMBER DEFAULT NULL )
RETURN t_context;
パラメータ
表20-30 OPEN_QUERY_CONTEXTファンクションのパラメータ
パラメータ | 説明 |
---|---|
p_location |
問合せコンテキストを開く場所。ローカル・データベース、リモート・データベースまたはWebソース・モジュールのいずれかです。C_LOCATION_LOCAL_DB 、C_LOCATION_REMOTE_DB またはC_LOCATION_WEB_SOURCE 定数を使用します。
|
p_module_static_id |
C_LOCATION_WEB_SOURCE をp_location 用に使用した場合、Webソース・モジュールの静的ID。
|
p_server_static_id |
C_LOCATION_REMOTE_DB をp_location 用に使用した場合、リモート・サーバーの静的ID
|
p_table_owner |
問合せタイプTABLE を使用する場合の表の所有者。
|
p_table_name |
問合せタイプTABLE を使用する場合の表の名前。
|
p_where_clause |
問合せタイプTABLE を使用する場合に追加するWHERE句。
|
p_order_by_clause |
問合せタイプTABLE を使用する場合に追加するORDER BY句。
|
p_include_rowid_column |
問合せタイプTABLE を使用する場合に、ROWID 列をSELECT リストに追加します。デフォルトはFALSE です。
|
p_sql_query |
問合せタイプにSQL問合せ を使用する場合に実行するSQL問合せ。
|
p_plsql_function_body |
SQL問合せを戻すPL/SQLファンクションの本体。 |
p_optimizer_hint |
APEXによって生成された最も外側のSQL問合せに適用されるオプティマイザ・ヒント。 |
p_external_filter_expr |
Webソース・モジュールに渡される外部フィルタ式。 |
p_external_order_by_expr |
Webソースに渡される外部ORDER BY式。 |
p_web_src_parameters |
Webソース・モジュールに渡されるパラメータ。 |
p_auto_bind_items |
APEXアイテム(ページおよびアプリケーション・アイテム)を自動的にバインドするかどうか。 |
p_sql_parameters |
SQL問合せに使用する追加のバインド変数。 |
p_filters |
問合せコンテキストに渡されるフィルタ。 |
p_order_bys |
問合せコンテキストに渡されるORDER BY式。 |
p_columns |
選択される列。 |
p_first_row |
結果セットからフェッチする最初の行。 |
p_max_rows |
フェッチする行の最大数。 |
p_total_row_count |
総行数を求めるかどうか。 |
p_total_row_count_limit |
総行数計算の上限値。 |
戻り値
問合せのカーソルを表すコンテキスト・オブジェクト。
例
次の例では、問合せを実行し、結果セットを出力します。このサンプル・コードは、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
--
htp.p( 'EMPNO: ' || apex_exec.get_number ( l_context, l_idx_empno ) );
htp.p( 'ENAME: ' || apex_exec.get_varchar2( l_context, l_idx_ename ) );
htp.p( '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