在ORACLE数据库中,我使用IMP导入数据,错把数据导入到其他用户中。请问我怎么删除错导入的数据?

我不想删除用户,也不想删除表空间。只想找出误导入的表、视图、存储过程等数据,并将其删除。然后重新导入。

执行以下查询语句:
select 'drop table '||table_name||';'
from cat
where table_type='TABLE'

将会输出一批删除表的sql语句,执行一下这些SQL语句就可以了。

如下:
declarebeginfor i in (select table_name from dba_tables where owner=:username) loopexecute immediate 'drop table '||:username||'.'||i.tablename;end loop;end;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-31
直接把你到入的那个用户的数据全删了。
drop user [username] casecade;

--补充
水已经导入大海了,想单独抽出来是不可能的。追问

sysbase 就可以通过导入的时间来查询并删除某次导入的数据。

追答

oracle目前不行。

追问

oracle创建的表、视图什么的没有创建时间吗

追答

创建的object是有时间,但是新插入的数据就没时间。
例如:表已存在,imp的时候会把数据直接imp进去。而这些数据是无法过滤的

第2个回答  2018-11-08
最后怎么解决的?
第3个回答  2013-08-01
写存储过程追问

怎么写存储过程,写存储过程可以删除那些东西吗。

追答

首先,在USER_TABLES中查找符合要求的表名,然后通过游标逐一删除,删除存储过程和视图原理也一样;

相似回答