EXECUTE_PLSQL Procedure

This procedure executes PL/SQL code based on the current process or plug-in location settings.

Syntax

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

Parameters

Table 14-6 EXECUTE_PLSQL Procedure Parameters

Parameter Description

p_plsql_code

PL/SQL code to be executed. Based on the settings of the current process or process-type plug-in, the code is executed locally or remote.

p_auto_bind_items

Whether to automatically bind page item values for IN *and* OUT direction. If the PL/SQL code references bind variables which are not page items, this must be set to false. Default: true

p_sql_parameters

Additional bind variables; if needed.

Examples

Example 1

Executes a PL/SQL block with arbitrary bind variables, so any bind can be used to pass values and to get values back.

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;

Example 2

Executes a PL/SQL block.

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