最近在oracle里删除用户时总是报错,提示信息为:

ORA-00604:递归SQL层1出现错误

ORA-00942:表或视图不存在

根据网上查到的解决方法经试验如下方法可行:

打开Oracle的跟踪

alter session set sql_trace=ture

执行我们的删除

drop user xxx

关闭跟踪

alter session set sql_trace=false;

然后在oracle服务端的安装目录下

E:\Program Files (x86)\oracle\product\10.2.0\admin\数据库名\udump 找到最新的跟踪文件

orcl_数据库名_4468.trc 然后在命令行中执行 tkprof E:\Program Files (x86)\oracle\product\10.2.0\admin\数据库名\udump\orcl_数据库名_4468.trc c:\log.txt 将跟踪信息文件转化为文本文件log.txt

打开log.txt查找其中错误信息可以看到

The following statement encountered a error during parse:

delete from system.aq$_internet_agent_privs WHERE db_username = NLS_UPPER(:1

Error encountered: ORA-00942

再执行一下  desc system.aq$_internet_agent_privs发现就是aq$_internet_agent_privs这个表不存在导致的

根据网上提供的解决方法找到脚本E:\Program Files (x86)\oracle\product\10.2.0\db_1\RDBMS\ADMIN/catqueue.sql

然后执行该脚本即可创建该表

重启数据库后执行删除用户即可执行成功 

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐