15.13 EXECUTE_REMOTE_PLSQLプロシージャ

このプロシージャは、REST対応SQLインスタンスでPL/SQLコードを実行します。

構文

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

パラメータ

表15-11 EXECUTE_REMOTE_PLSQLプロシージャのパラメータ

パラメータ 説明

p_server_static_id

ORDS REST対応SQLインスタンスの静的IDです。

p_plsql_code

実行されるPL/SQLコード。

p_auto_bind_items

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

p_sql_parameters

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

例1

リモート・データベースに対してPL/SQLブロックを実行します。

begin
    apex_exec.execute_remote_plsql(
        p_server_static_id => '{Static ID of the REST Enabled SQL Service}',
        p_plsql_code  => q'#begin :P10_NEW_SAL := salary_pkg.raise_sal( p_empno => :P10_EMPNO ); end;#' );
end;

例2

任意のバインド変数を操作するため、任意のバインドを使用して、REST対応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_remote_plsql(
            p_server_static_id     => '{Static ID of the REST Enabled SQL Service}',
            p_plsql_code           => q'#begin :MY_BIND_OUT_VAR := some_remote_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;