动态 SQL 非动态 PL/SQL 示例

Dynamic SQL un dynamic PL/SQL example

我是初学者,能否请您在不使用复杂结构的情况下简单地展示一个使用动态 SQL 和动态 PL/SQL 的 PL/SQL 程序示例?可以有一个 PL/SQL 程序同时使用动态 SQL 和动态 PL/SQL 吗?

给你。

  • l_sql 是一个局部变量,它包含一个简单的 SQL 语句 - 它创建一个 table
  • l_plsql 然后包含一个匿名 PL/SQL 块,该块 - 在循环中 - 将几行插入先前(动态)创建的 table

SQL> declare
  2    l_sql   varchar2(1000);
  3    l_plsql varchar2(1000);
  4  begin
  5    l_sql := 'create table t_sql (id number)';
  6
  7    l_plsql := 'begin ' ||
  8               '  for i in 1 .. 5 loop ' ||
  9               '    insert into t_sql (id) values (i); ' ||
 10               '  end loop; ' ||
 11               'end;';
 12
 13    execute immediate l_sql;
 14    execute immediate l_plsql;
 15  end;
 16  /

PL/SQL procedure successfully completed.

SQL> select * from t_sql;

        ID
----------
         1
         2
         3
         4
         5

SQL>