在 Oracle 中找不到 table
Can't find table in oracle
我有一个 oracle 查询 SELECT * FROM My_Table
,其中 returns 行符合预期。
我正在尝试获取有关 table 中某些列的信息,但是当我查询 All_Tab_Columns 时,没有 TABLE_NAME = 'My_Table'
的列
然后我查询了 ALL_TABLES 和 ALL_VIEWS 但我找不到 table/view where TABLE_NAME = 'My_Table'
或 where VIEW_NAME = 'My_Table'
.
我在这里错过了什么? My_Table 还能是什么以及如何找到有关查询时返回的列的信息?
在 Oracle 中,表名(以及与此相关的所有对象名)实际上在内部默认为大写。如果您使用此 WHERE
子句查询数据字典,您应该得到结果:
where TABLE_NAME = 'MY_TABLE'
Oracle语法不区分大小写,但数据区分大小写。
因此您可以按如下方式查询您的 table:
select * from all_tables where table_name like upper('%My_Table%')
如果您没有找到任何关于 table 的数据,这可能是同义词
所以您可以从 all_synonyms 视图查询它。
select * from all_synonyms where synonym_name like upper('%My_Table%')
我有一个 oracle 查询 SELECT * FROM My_Table
,其中 returns 行符合预期。
我正在尝试获取有关 table 中某些列的信息,但是当我查询 All_Tab_Columns 时,没有 TABLE_NAME = 'My_Table'
然后我查询了 ALL_TABLES 和 ALL_VIEWS 但我找不到 table/view where TABLE_NAME = 'My_Table'
或 where VIEW_NAME = 'My_Table'
.
我在这里错过了什么? My_Table 还能是什么以及如何找到有关查询时返回的列的信息?
在 Oracle 中,表名(以及与此相关的所有对象名)实际上在内部默认为大写。如果您使用此 WHERE
子句查询数据字典,您应该得到结果:
where TABLE_NAME = 'MY_TABLE'
Oracle语法不区分大小写,但数据区分大小写。 因此您可以按如下方式查询您的 table:
select * from all_tables where table_name like upper('%My_Table%')
如果您没有找到任何关于 table 的数据,这可能是同义词 所以您可以从 all_synonyms 视图查询它。
select * from all_synonyms where synonym_name like upper('%My_Table%')