这次报错有点不明显,没有说是什么object 已经存在了,查看名称 APPLSYS.WF_JAVA_DEFERRED ,没有重复的object ,那创建过程中还有什么重复的呢 ? 之后根据错误ORA-00955: name is already used by an existing object 在metalink 查询到了类似的说明, 参考Move Queue Table Issues ORA-00955 (文档 ID 1684231.1) , 了解到常见queue_table的过程中可能会创建中间表或sequence , index等等object , 可能是在从源库导出,然后导入目标库的时候,queue table被当成普通表导入创建了,虽然drop后重建,但是创建过程中的中间表或index 等object 没有清理干净, 需要查询并清理。
按照metalink文档上的解决方式(在一个session下执行):
alter session set events '955 trace name errorstack level 10';
alter session set events '10046 trace name context forever, level 12';
执行创建queue_table语句;
alter session set events '955 trace name errorstack off';
alter session set events '10046 trace name context OFF';
查询出session对应的OSPID , 便于在trace目录下查找trc文件。
SELECT pro.spid, sess.SID from v$session sess, v$process pro
where sess.PADDR = pro.ADDR
and sess.sid= (select sid from v$mystat where rownum=1) ;
最后从trace文件中查询 name is already used by an existing object 关键字,很明显看到是一个CREATE SEQUENCE 的语句报错, 的确在目标库是重复的,删除后再次运行就成功了。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/35489/viewspace-1225678/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/35489/viewspace-1225678/
本文介绍了解决Oracle数据库中ORA-00955错误的方法。该错误通常发生在创建queue_table过程中,由于中间表或index等object重复导致。通过启用跟踪并检查trace文件来定位问题源头,最终通过清理重复的sequence解决了问题。
2万+

被折叠的 条评论
为什么被折叠?



