〖原理(

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