日期:2014-05-16  浏览次数:20402 次

Oracle删除用户的表
在使用PL/SQL的dmp文件导入数据前,需要先将相同的表删掉,然后才能导入。以前的方法是手动在左侧栏选中,删除的。
PL/SQL使用dmp文件导入数据实验:
有两个用户,也就是相对应于sql server的两个数据库,1和2
数据模拟:
1比2多的  20100000年度记录
1比2少的  20101111新增记录
1和2不一样的
1中的20100001记录的周期名 为 2010年一季度
2中的20100001记录的周期名 为 20100001

使用2的dmp文件导入1中,在1中的结果:
1、20100000年度记录 存在
2、20101111新增记录 存在
3、20100001记录的周期名 为 2010年一季度 (使用原有的值)


下面是使用SQL进行删除

1、查询这个用户下有多少张表
   1、select count(*) from user_tables --查看表的个数
   2、select * from user_tables        --查看表的详细信息
   3、SELECT at.TABLE_NAME
      FROM ALL_TABLES at
      WHERE upper(at.OWNER)='GRAY'
2、删除所有的表
   1、使用循环
   Begin
     for t in (select tt.table_name from ALL_TABLES tt where upper(tt.OWNER)='JACK')
        loop
          execute immediate 'drop table ' || t.table_name;
        end loop;
   end;  
   1.execute immediate 为快速的解释执行
   2.循环结构:
     for i in (循环体)
     loop
     end loop;
   2、使用游标
     游标不能用于ALL_TABLES 表