您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

删除Oracle某数据库下的所有表

2024/2/27 12:35:03发布10次查看
oracle在恢复数据的过程中,当恢复某个表时,该表已经存在,就要根据ignore参数的设置来决定如何操作。若ignore=y,oracle不执行
今天使用imp导入dmp格式的数据库备份的时候,,发现导入出错,提醒对象已经存在,才记起来要先删除所有表才能导入,如果数据库有几十上百个表的话,一个一个去删除真浪费时间。为了方便,就写了一条语句来查询所有表和生成批量删除的语句:
select 'drop table '||table_name||';' as sqlscript from user_tables;
sqlscript
--------------------------------------------
drop table lo_caseinfo;
drop table lo_harmonizecase;
drop table lo_lawcheck;
drop table lo_legislationitem;
drop table lo_trainbatch;
drop table oa_impress;
drop table oa_sysgroup;
就可以复制所有表的drop语句了,一次批量执行完。
还有另外一个方法imp时使用ignore参数,可以忽略已经存在的对象,免除手动删除表的操作:
参数说明:
oracle在恢复数据的过程中,当恢复某个表时,该表已经存在,就要根据ignore参数的设置来决定如何操作。
若ignore=y,oracle不执行create table语句,直接将数据插入到表中,假如插入的记录违反了约束条件,比如主键约束,则出错的记录不会插入,但合法的记录会添加到表中。
若ignore=n,oracle不执行create table语句,同时也不会将数据插入到表中,而是忽略该表的错误,继续恢复下一个表。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product