Simple EXECUTE IMMEDIATE : Execute immediate « PL SQL Statements « Oracle PL/SQL Tutorial






The EXECUTE IMMEDIATE command can be

  1. a VARCHAR2 variable,
  2. a literal quoted string, or
  3. any string expression.
begin
    execute immediate 'whatever_text_string_you_want';
end;

or

declare
   v_variable_tx VARCHAR2(32000);
begin
   v_variable_tx:='whatever_you_want';
   execute immediate v_variable_tx;
end;

The code to be executed can be passed as a variable or directly as a string in the command.

The string cannot exceed 32K.

The code can be a single SQL command or a large block of PL/SQL.

All PL/SQL blocks passed as a string should have a semicolon at the end, as shown here: execute immediate 'begin p_test; end;';

All SQL statements passed as a string should not have a semicolon at the end, as shown here: execute immediate 'select 1 from dual' into a;









22.16.Execute immediate
22.16.1.Simple EXECUTE IMMEDIATE
22.16.2.Call EXECUTE IMMEDIATE in Pl/SQL block
22.16.3.Execute sql statement in a procedure
22.16.4.'execute immediate in' action
22.16.5.Define a procedure to drop a database object
22.16.6.Create a function to count table row
22.16.7.Use procedure to create an index dynamically
22.16.8.Call function and get result by using 'EXECUTE IMMEDIATE'
22.16.9.EXECUTE IMMEDIATE dynamic sql to alter session
22.16.10.Use 'execute immediate' to run a insert statement
22.16.11.select into rowtype then use it in 'execute immediate'
22.16.12.Quotation string
22.16.13.Use 'EXECUTE IMMEDIATE' to execute an update statement
22.16.14.Wrap 'EXECUTE IMMEDIATE' for current user
22.16.15.Wrap statement with 'BEGIN...END'
22.16.16.Catch exception from 'EXECUTE IMMEDIATE'
22.16.17.EXECUTE IMMEDIATE USING IN
22.16.18.Drop user, create user and grant permission with PL/SQL code
22.16.19.execute immediate into
22.16.20.Update row with 'execute immediate'