27.50 OPEN_JSON_SOURCE_DML_CONTEXTファンクション
JSONソースに基づいてDMLコンテキストを開きます。
構文
APEX_EXEC.OPEN_JSON_SOURCE_DML_CONTEXT (
p_static_id IN VARCHAR2,
p_array_column_name IN VARCHAR2 DEFAULT NULL,
--
p_columns IN t_columns DEFAULT c_empty_columns,
p_lost_update_detection IN t_lost_update_detection DEFAULT NULL )
RETURN t_context;
パラメータ
パラメータ | 説明 |
---|---|
p_static_id |
JSONソースの静的ID。 |
p_array_column_name |
RESTソース・データ・プロファイル内の配列列の名前。 |
p_columns |
データ・ソースに渡すDML列。 |
p_lost_update_detection |
ロストアップデートの検出タイプ。定数c_lost_update_* を使用します |
戻り値
DMLハンドルを表すコンテキスト・オブジェクト。
例
次の例では、"EMP"二面性ビュー・ソースに"1行を挿入"します。
DECLARE
l_columns apex_exec.t_columns;
l_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 context object
l_context := apex_exec.open_duality_view_dml_context(
p_static_id => '{duality view static id}',
p_columns => l_columns,
p_lost_update_detection => apex_exec.c_lost_update_none );
-- III. Provide DML data
apex_exec.add_dml_row(
p_context => l_context,
p_operation => apex_exec.c_dml_operation_insert );
apex_exec.set_value(
p_context => l_context,
p_column_position => 1,
p_value => 4711 );
apex_exec.set_value(
p_context => l_context,
p_column_position => 2,
p_value => 'DOE' );
apex_exec.set_value(
p_context => l_context,
p_column_position => 3,
p_value => 'DEVELOPR' );
apex_exec.set_value(
p_context => l_context,
p_column_position => 4,
p_value => sysdate );
apex_exec.set_value(
p_column_position => 6,
p_value => 1000 );
apex_exec.set_value(
p_context => l_context,
p_column_position => 8,
p_value => 10 );
-- IV: Execute the DML statement
apex_exec.execute_dml(
p_context => l_context,
p_continue_on_error => false);
apex_exec.close( l_context );
EXCEPTION
WHEN others THEN
apex_exec.close( l_context );
RAISE;
END;
親トピック: APEX_EXEC