15.33 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;
パラメータ
表15-31 OPEN_QUERY_CONTEXTファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
問合せコンテキストを開く場所。ローカル・データベース、リモート・データベースまたはWebソース・モジュールのいずれかです。 |
|
|
|
|
|
問合せタイプ |
|
問合せタイプ |
|
問合せタイプ |
|
問合せタイプ |
|
問合せタイプ |
|
問合せタイプにSQL問合せを使用する場合に実行するSQL問合せ。 |
|
SQL問合せを戻すPL/SQLファンクションの本体。 |
|
APEXによって生成された最も外側のSQL問合せに適用されるオプティマイザ・ヒント。 |
|
Webソース・モジュールに渡される外部フィルタ式。 |
|
Webソースに渡される外部ORDER BY式。 |
|
Webソース・モジュールに渡されるパラメータ。 |
|
APEXアイテム(ページおよびアプリケーション・アイテム)を自動的にバインドするかどうか。 |
|
SQL問合せに使用する追加のバインド変数。 |
|
問合せコンテキストに渡されるフィルタ。 |
|
問合せコンテキストに渡されるORDER BY式。 |
|
選択される列。 |
|
結果セットからフェッチする最初の行。 |
|
フェッチする行の最大数。 |
|
総行数を求めるかどうか。 |
|
総行数計算の上限値。 |
戻り値
問合せのカーソル
を表すコンテキスト・オブジェクト。
例
次の例では、問合せを実行し、結果セットを出力します。このサンプル・コードは、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