最近在做一个数据备份与还原的作业,用exp导出用户数据,再用imp导入,但imp导入数据不会覆盖原来的数据,所以想先把原来的数据删除,因为本次作业使用java写的,所以想用sql脚本语句来实现用户的所有数据的删除和新增,求大神指点

解决方案 »

  1.   

    能不能具体点,我刚接触oracle一周不到,删除表的sql语句怎么写的啊,关键是把一个用户下的所有表删除不会啊
      

  2.   

    declare
      sqlstr varchar2(999);
    begin
      for c in (select table_name from user_tables) loop
          sqlstr := 'drop table '||c.tablename||' purge';
          begin
              execute immediate sqlstr ;
          exception
              when others then
                  dbms_output.put_line(c.tablename||'可能具有外键关联,自行确定是否删除');
          end; 
      end loop;
    end;
      

  3.   

    declare
      sqlstr varchar2(999);
    begin
      for c in (select table_name from user_tables) loop
          sqlstr := 'drop table '||c.table_name||' purge';
          begin
              execute immediate sqlstr ;
          exception
              when others then
                  dbms_output.put_line(c.table_name||'可能具有外键关联,自行确定是否删除');
          end; 
      end loop;
    end;
      

  4.   

    declare
      sqlstr varchar2(999);
    begin
      for c in (select table_name from user_tables) loop
          sqlstr := 'drop table '||c.table_name||' purge';
          begin
              execute immediate sqlstr ;
          exception
              when others then
                  dbms_output.put_line(c.table_name||'可能具有外键关联,自行确定是否删除');
          end; 
      end loop;
    end;
      

  5.   


    truncate table tablename 然后 insert into select * from 
      

  6.   

    清空表是truncate table 表名
      

  7.   

    清空表是truncate table 表名谢谢你的回答,我已经搞懂了