动态 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>
我是初学者,能否请您在不使用复杂结构的情况下简单地展示一个使用动态 SQL 和动态 PL/SQL 的 PL/SQL 程序示例?可以有一个 PL/SQL 程序同时使用动态 SQL 和动态 PL/SQL 吗?
给你。
l_sql
是一个局部变量,它包含一个简单的 SQL 语句 - 它创建一个 tablel_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>