我有 2 个查询
SELECT *
FROM sys.dba_indexes
WHERE Table_Name = 'XDB$RESOURCE'
和
SELECT *
FROM sys.dba_tables
WHERE Table_Name = 'XDB$RESOURCE'
表格不显示的原因有sys.dba_tables
哪些?据我阅读,所有表格都应在此处显示,因此我使用它而不是all_tables
.
Oracle中的索引可以针对已删除的表吗?
sys.dba_tables 是否显示与您拥有的访问权限相关的数据,如果是,是否有任何表只带回一半数据?
对 Oracle 来说相对较新,任何解释或建议都值得赞赏。
你说的对。
XDB$RESOURCE
不在DBA_TABLES
。它在 中DBA_OBJECT_TABLES
,因为它是一个对象表。对象表在 {DBA,ALL,USER}_OBJECT_TABLES 中列出。所有常规(非对象)表都在 {DBA,ALL,USER}_TABLES 中。
不可以。DBA_ 视图应该只能由数据库管理员访问,根据定义,他们可以访问 [几乎]一切。
是的。默认情况下,删除的表首先进入回收站(基本上它会被重命名)并且只会从那里正确删除,因此附加到原始表的任何索引都会随之进入回收站。
为什么这个没有出现在 DBA_TABLES 中?
不知道,我很抱歉地说。
一位工作同事向我指出了以下内容,对于偶然发现这个问题的任何其他人,请使用 DBA_ALL_TABLES
洛德维库斯感谢您的帮助:)