18.37 OPEN_WEB_SOURCE_DML_CONTEXTファンクション(非推奨)

ノート:

このファンクションは非推奨であり、将来のリリースで削除される予定です。かわりにopen_rest_source_dml_contextを使用してください。

さらに、パラメータp_module_static_idは非推奨です。かわりにp_static_idを使用してください。

このファンクションは、Webソース・モジュールに基づいてDMLコンテキストを開きます。

構文

FUNCTION OPEN_WEB_SOURCE_DML_CONTEXT (
    p_module_static_id      IN VARCHAR2,
    p_parameters            IN t_parameters            DEFAULT c_empty_parameters,
    --
    p_columns               IN t_columns               DEFAULT c_empty_columns,
    p_lost_update_detection IN t_lost_update_detection DEFAULT NULL ) RETURN t_context;

パラメータ

表18-35 OPEN_WEB_SOURCE_DML_CONTEXTファンクションのパラメータ

パラメータ 説明

p_module_static_id (非推奨)

使用するWebソース・モジュールの静的ID。このWebソース・モジュールには、少なくとも1つの行の挿入、行の更新または行の削除のデータベース・アクションを行う操作が必要です。

このパラメータは非推奨です。かわりにp_static_idを使用してください。

p_parameters

DMLコンテキストに渡すWebソースのパラメータ値。

p_columns

データ・ソースに渡すDML列

p_lost_update_detection

ロストアップデートの検出タイプ。使用可能な値は次のとおりです。
  • c_lost_update_implicit: Application Expressは、行の値からチェックサムを計算します。
  • c_lost_update_explicit: p_columnsのいずれかに"is_checksum"属性が設定されています
  • c_lost_update_none: ロストアップデートを検出しません

次の例は、EMP Webソース・モジュールに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_web_source_dml_context(
        p_server_static_id      => '{module 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;

戻り値

DMLハンドルを表すコンテキスト・オブジェクト。