ALL_OBJECTS表中存在但无法选择的表如何处理

Sar*_*dra 1 oracle table

我在我的 Oracle DB 模式中看到一个“丢失”表周围的奇怪行为。

最终目标是收集我们团队使用的所有表的统计数据。所有这些表都有一个共同的前缀 - rca

因此,我正在使用以下方法获取表列表:

SELECT * 
FROM ALL_OBJECTS 
where OBJECT_NAME like 'rca%' 
  AND OBJECT_TYPE = 'TABLE';
Run Code Online (Sandbox Code Playgroud)

此查询返回一个名为 的表rca_related_materials

我们正在使用由其他团队开发的功能,该功能为我们完成收集统计数据的工作。我们只是将 owner_name 和 table_name 传递给该函数。

为此表名调用该函数或运行

analyze table rca_related_materials compute statistics for table;
Run Code Online (Sandbox Code Playgroud)

甚至,

select * 
from rca_related_materials;
Run Code Online (Sandbox Code Playgroud)

返回以下错误报告

SELECT * 
FROM ALL_OBJECTS 
where OBJECT_NAME like 'rca%' 
  AND OBJECT_TYPE = 'TABLE';
Run Code Online (Sandbox Code Playgroud)

如何从 ALL_OBJECTS 表中删除此条目?

PS:我在 USER_TABLES 和 DBA_TABLES 中也看到了相同的条目。

Mic*_*utz 6

具有小写名称的数据库对象在引用时需要将其名称用双引号括起来

此外,您遗漏了架构名称。

尝试

select * 
from SCHEMA_NAME."rca_related_materials";
Run Code Online (Sandbox Code Playgroud)