在储存过程创建表

〖原理(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

posted @ 2009-12-23 14:53  饺子吃遍天  阅读(183)  评论(0编辑  收藏  举报