Chinaunix首页 | 论坛 | 博客
  • 博客访问: 11287483
  • 博文数量: 8065
  • 博客积分: 10002
  • 博客等级: 中将
  • 技术积分: 96708
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-16 17:06
文章分类

全部博文(8065)

文章存档

2008年(8065)

分类: 服务器与存储

2008-05-28 08:28:30

〖原理(Cause 

使用动态可以执行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

阅读(10050) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~