このファンクションは、問合せコンテキストを開き、ORDS REST対応SQLインスタンスに対して指定されたSQL問合せを実行します。
構文
function open_remote_sql_query( p_server_static_id in varchar2, p_sql_query in varchar2, p_sql_parameters in t_parameters default c_empty_parameters, p_auto_bind_items in boolean default true, -- 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 pls_integer default null ) return t_context;
パラメータ
表13-17 OPEN_REMOTE_SQL_QUERYファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
ORDS REST対応SQLインスタンスの静的IDです。 |
|
実行するSQL問合せ。 |
|
リモート・サーバーに渡すバインド変数。 |
|
すべてのページ・アイテムを自動的にバインドするかどうか。 |
|
結果セットからフェッチする最初の行。 |
|
フェッチする行の最大数。 |
|
総行数を求めるかどうか。 |
|
総行数計算の上限値。 |
戻り値
Webソース問合せのカーソルを表すコンテキスト・オブジェクト。
例
次の例では、REST対応ORDSインスタンスが静的ID My_Remote_SQL_Instance
で共有コンポーネントに構成されていることを前提としています。それに基づいて、リモート・サーバーに問合せを実行し、結果セットを出力します。このサンプル・コードは、プラグイン内や「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_remote_sql_query( p_server_static_id => 'My_Remote_SQL_Instance', 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_debug.log_exception; apex_exec.close( l_context ); raise; end;
親トピック: APEX_EXEC