如何截断我的用户在Oracle中拥有的表而没有错误消息

时间:2016-07-22 16:03:26

标签: sql oracle10g

感谢阅读这篇文章。我在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.

我已经做过的事情:

  • 确保EXAMPLE_USER具有“drop any table”权限
  • 确保在运行truncate语句后删除行

其他信息:

  • 我不能简单地删除并重新创建表,因为截断是在我无法控制的大型数据库升级/更新脚本中发生的。

  • 该错误让我相信Oracle中的truncate语句使用某种类型的sys包或过程,我的用户没有权限访问或使用,基于“50行”部分信息。实际的truncate语句本身就是一个单行脚本。有没有人在Oracle中遇到过这个问题?

此致 戴夫

0 个答案:

没有答案