15.12 EXECUTE_PLSQLプロシージャ

このプロシージャは、現在のプロセスまたはプラグインの場所設定に基づいてPL/SQLコードを実行します。

構文

procedure execute_plsql (
    p_plsql_code      in     varchar2,
    p_auto_bind_items in     boolean      default true,
    p_sql_parameters  in out t_parameters );

パラメータ

表15-10 EXECUTE_PLSQLプロシージャのパラメータ

パラメータ 説明

p_plsql_code

実行されるPL/SQLコード。現在のプロセスまたはプロセス・タイプのプラグインの設定に基づいて、コードがローカルまたはリモートで実行されます。

p_auto_bind_items

IN方向OUT方向のページ・アイテム値を自動的にバインドするかどうか。ページ・アイテムではないバインド変数をPL/SQLコードが参照する場合には、これをfalseに設定する必要があります。デフォルト: true

p_sql_parameters

追加のバインド変数(必要な場合)。

例1

任意のバインド変数を使用してPL/SQLブロックを実行するため、任意のバインドを使用して値を渡し、値を戻すことができます。

declare
    l_sql_parameters apex_exec.t_parameters;
    l_out_value      varchar2(32767);
begin
    apex_exec.add_parameter( l_sql_parameters, 'MY_BIND_IN_VAR',  '{some value}' );
    apex_exec.add_parameter( l_sql_parameters, 'MY_BIND_OUT_VAR', ''             );

    apex_exec.execute_plsql(
        p_plsql_code      => q'#begin :MY_BIND_OUT_VAR := some_plsql( p_parameter => :MY_BIND_IN_VAR ); end;#',
        p_auto_bind_items => false,
        p_sql_parameters  => l_sql_parameters );

    l_out_value := apex_exec.get_parameter_varchar2( 
        p_parameters => l_sql_parameters,
        p_name       => 'MY_BIND_OUT_VAR');

    -- further processing of l_out_value        
end;

例2

PL/SQLブロックを実行します。

begin
    apex_exec.execute_plsql(
        p_plsql_code => q'#begin :P10_NEW_SAL := salary_pkg.raise_sal( p_empno => :P10_EMPNO ); end;#' );
end;