各位前辈,刚开始用oracle,对数据库也是一无所知,所以我问的问题可能很无知,但是我搜索了很久还是没有找到答案,见笑了。我想删除一个用户和用户相关的一个表空间,是不是应该先删除表空间,然后删除用户?我在删除表空间的时候出现错误:
ORA-00604: 递归 SQL 级别 2 出现错误 ORA-00376: 此时无法读取文件 5 ORA-01110: 数据文件 5: 'D:\SDE.DBF' ORA-06512: 在 line 1
由于我用其他的软件对这个表文件做过分区,所以我就试着删除下面的分区,可是报这样的错误:ORA-29857: 表空间中存在域索引和/或次级对象 。
再去试着删除用户,报这样的错误:ORA-01940: 无法删除当前已连接的用户 谢谢各位前辈了。
ORA-00604: 递归 SQL 级别 2 出现错误 ORA-00376: 此时无法读取文件 5 ORA-01110: 数据文件 5: 'D:\SDE.DBF' ORA-06512: 在 line 1
由于我用其他的软件对这个表文件做过分区,所以我就试着删除下面的分区,可是报这样的错误:ORA-29857: 表空间中存在域索引和/或次级对象 。
再去试着删除用户,报这样的错误:ORA-01940: 无法删除当前已连接的用户 谢谢各位前辈了。
解决方案 »
- ORACLE时间段查询优化的问题
- 模糊查找的索引在什么情况下有效?
- 请教高手一个oracle函数的问题
- Oracle批量插入数据问题,在线等
- PLSQL怎么截取异常呢
- CLOB字段,能不能直接insert?为什么我在insert时遇到几千的字符就报超长了?
- nvarchar2(2000),当输入2000个汉字提示string literal too long
- asp连接oracle92的问题,谢谢,顶者有分
- oracle: select a,b from xxtable 记录有5千万条,结果会怎样?
- 这个查询语句该怎么写
- full join 多表连接,出现重复数据,求解决方法
- 不是有效的函数或过程名,求指点
如果是要删除用户及该用户的所有数据的话可以用
Drop user username cascade;还是删除表空间?表空间一般不作删除
如果是这样的话有时候在删除表空间的时候会报错
可以
alter database datafile 'D:\SDE.DBF' offline drop;
然后再删除表空间删除用户
drop tablespace ...
drop user ...
给你条语句删除表空间然后再清理后台数据文件就可以了.
删除的过程包括逻辑文件和物理文件的删除..drop tablespace tbsName including contents ;
然后只要找到你的数据文件物理删除掉就好了.
ORA-00604: 递归 SQL 级别 2 出现错误 ORA-00376: 此时无法读取文件 5 ORA-01110: 数据文件 5: 'D:\SDE.DBF' ORA-06512: 在 line 1
其中SDE.DBF文件已经按照5#的说法做了,提示数据库更改成功了。怎么还是会提示无法读取呢?另外我删除意外一个跟SDE.DBF这个文件毫无关系的表空间,竟然也是提示上面的那样的错误。怎么回事呢?
在删除用户(cascade)的时候就会把用户的所有对象删除了,如果你要删除的表空间专属于这个用户的话 应该就是已经空了,这样再删除应该就没有问题了
我遇到这个问题的时候,已经把数据文件误删掉了,所以就重做了Oracle实例,然后恢复的数据库。期望你有最新的数据库备份,万般无奈就重做实例吧。