15.10 COPY_DATAプロシージャ
このプロシージャは、ソース・コンテキストからすべての行をフェッチし、ターゲット・コンテキストに書き込みます。異なるデータ・ソース間でのデータのコピーに役立ちます(ローカルからリモート、リモートからWebソースなど)。
構文
procedure copy_data(
p_from_context in out nocopy t_context,
p_to_context in out nocopy t_context,
p_operation_column_name in varchar2 default null);
パラメータ
表15-8 COPY_DATAプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
行をフェッチする問合せコンテキスト。 |
|
行を書き込むDMLコンテキスト。 |
|
ターゲット・コンテキストで実行するDML操作を示す問合せコンテキストの列。使用可能な値は次のとおりです。
|
例
declare
l_columns apex_exec.t_columns;
l_dml_context apex_exec.t_context;
l_query_context apex_exec.t_context;
begin
-- I. Define DML columns
apex_exec.add_column(
p_columns => l_columns,
p_column_name => 'EMPNO',
p_data_type => apex_exec.c_data_type_number,
p_is_primary_key => true );
apex_exec.add_column(
p_columns => l_columns,
p_column_name => 'ENAME',
p_data_type => apex_exec.c_data_type_varchar2 );
apex_exec.add_column(
p_columns => l_columns,
p_column_name => 'JOB',
p_data_type => apex_exec.c_data_type_varchar2 );
apex_exec.add_column(
p_columns => l_columns,
p_column_name => 'HIREDATE',
p_data_type => apex_exec.c_data_type_date );
apex_exec.add_column(
p_columns => l_columns,
p_column_name => 'MGR',
p_data_type => apex_exec.c_data_type_number );
apex_exec.add_column(
p_columns => l_columns,
p_column_name => 'SAL',
p_data_type => apex_exec.c_data_type_number );
apex_exec.add_column(
p_columns => l_columns,
p_column_name => 'COMM',
p_data_type => apex_exec.c_data_type_number );
apex_exec.add_column(
p_columns => l_columns,
p_column_name => 'DEPTNO',
p_data_type => apex_exec.c_data_type_number );
-- II. Open the Query Context object
l_query_context := apex_exec.open_remote_sql_query(
p_server_static_id => 'DevOps_Remote_SQL',
p_sql_query => 'select * from emp',
p_columns => l_columns );
-- III. Open the DML context object
l_dml_context := apex_exec.open_remote_dml_context(
p_server_static_id => '{remote server static id}',
p_columns => l_columns,
p_query_type => apex_exec.c_query_type_sql_query,
p_sql_query => 'select * from emp' );
-- IV. Copy rows
apex_exec.copy_data(
p_from_context => l_query_context,
p_to_context => l_dml_context );
-- V. Close contexts and free resources
apex_exec.close( l_dml_context );
apex_exec.close( l_query_context );
exception
when others the
apex_exec.close( l_dml_context );
apex_exec.close( l_query_context );
raise;
end;
親トピック: APEX_EXEC