感谢阅读这篇文章。我在Oracle 10g中遇到了一个奇怪的问题。我试图弄清楚如何在没有生成错误的情况下截断表。
我需要做什么:
truncate table EXAMPLE_USER.EXAMPLE_TABLE;
正在发生的事情:表中的行已成功删除,但会生成以下错误:
Error starting at line 1 in command:
truncate table EXAMPLE_USER.EXAMPLE_TABLE
Error report:
SQL Error: ORA-00604: error occurred at recursive SQL level 1
ORA-00942: table or view does not exist
ORA-06512: at line 50
00604. 00000 - "error occurred at recursive SQL level %s"
*Cause: An error occurred while processing a recursive SQL statement
(a statement applying to internal dictionary tables).
*Action: If the situation described in the next error on the stack
can be corrected, do so; otherwise contact Oracle Support.
我已经做过的事情:
其他信息:
我不能简单地删除并重新创建表,因为截断是在我无法控制的大型数据库升级/更新脚本中发生的。
该错误让我相信Oracle中的truncate语句使用某种类型的sys包或过程,我的用户没有权限访问或使用,基于“50行”部分信息。实际的truncate语句本身就是一个单行脚本。有没有人在Oracle中遇到过这个问题?
此致 戴夫