Oracle SQL:从all_tab_columns中选择找不到现有列

时间:2013-06-28 12:35:31

标签: sql oracle oracle-sqldeveloper

如果我运行以下查询:

select count(*) from all_tab_columns
        where column_name = 'foo'
        and table_name = 'VIEW0';

我得到0表示结果。我期待1.

但是,如果我运行以下查询,我会返回许多(预期)行:

select foo from VIEW0;

为什么呢?我假设我正在制作一些愚蠢的语法错误或者我的理解已经过时了。

3 个答案:

答案 0 :(得分:8)

可能原因是你有区分大小写的设置。

尝试添加UPPER功能,如下所示。

select count(*) from all_tab_columns
        where column_name = upper('foo')
        and table_name = 'VIEW0';

答案 1 :(得分:0)

答案 2 :(得分:0)

至少在11g中,您无法从PL / SQL访问数据字典表。在PL / SQL内的all_tab_columns上运行任何选择始终不返回任何结果。尝试访问dba_tab_columns将无法编译,因为编译器认为表(或视图)不存在。

我很想看看如何从PL / SQL访问数据字典。