ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 动态创建删除表

动态创建删除表

原创 Linux操作系统 作者:os-ora 时间:2010-06-12 11:55:07 0 删除 编辑

创建表

create or replace procedure proc_test
(
table_name in varchar2,
field1 in varchar2,
datatype1 in varchar2,
field2 in varchar2,
datatype2 in varchar2
) as
str_sql varchar2(500);
begin
str_sql:='create table '||table_name||'('||field1||' '||datatype1||','||field2||' '||datatype2||')';
dbms_output.put_line(str_sql);
execute immediate str_sql;
exception
when others then
dbms_output.put_line('ERROR');
end ;

execute proc_test('dinya_test','id','number(8) not null','name','varchar2(100)');

此过程在sys用户下表创建成功,但是我在scott用户下,执行该过程就会抛出ERROR错误,不知为何?有知道的朋友麻烦告诉一声

删除表

Begin
  for t in (select table_name from user_tables where table_name like 'XT_%') loop
execute immediate 'drop table ' || t.table_name;
  end loop;
end;

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/16566331/viewspace-665086/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2010-01-12

  • 博文量
    148
  • 访问量
    410401