〖原理(
Cause
)
〗
使用动态
SQL
可以执行
DDL
语句。
〖方法(
Action
)
〗
方法一:
Step01
:
创建存储过程
create_table
。
CREATE OR REPLACE PROCEDURE create_table
IS
v_Cursor NUMBER;–
定义游标
v_CreateString VARCHAR2(100);–
这个变量存放创建表的
SQL
语句。
BEGIN
v_Cursor := DBMS_SQL.OPEN_CURSOR;–
打开游标
v_CreateString := ‘CREATE TABLE tp (id int,name varchar2(20))’;–
创建表的
SQL
语句。
DBMS_SQL.PARSE(v_Cursor, v_CreateString, DBMS_SQL.V7);
执行建表的
SQL
语句
DBMS_SQL.CLOSE_CURSOR(v_Cursor);–
关闭游标
END create_table;
Step02
:
执行存储过程
SQL> execute create_table;
PL/SQL procedure successfully completed.
这个过程将创建表
tp
。
方法二:
Step01
:
创建过程存储过程
create_table
SQL> create or replace procedure create_table
2 as
3 Pstring varchar2(2000);
4 begin
5 Pstring:=’ CREATE TABLE tp (id int,name varchar2(20))’ ;–
创建表的
sql
语句
6 execute immediate p_string;–
创建表
7 end;
8 /
Procedure created.
Step02
:
执行过程
SQL> execute create_table;
PL/SQL procedure successfully completed.
这个过程将创建表
tp
。
转载于:https://www.cnblogs.com/liaomin416100569/archive/2009/12/23/9332051.html