【问题标题】:Select column_name from cols return nothing although column exists尽管列存在,但从 cols 中选择 column_name 不返回任何内容
【发布时间】:2011-05-26 06:17:24
【问题描述】:

我正在尝试在 Oracle 9i 中执行此语句。然而,结果集似乎是空的,尽管 J 很确定有很多列名称为 ID。

select * from cols where column_name like '%ID%';

此外,以下语句返回一个空结果集。

select * from cols;

请问这是否是由于用户权限造成的?

谢谢!

【问题讨论】:

    标签: sql oracle data-dictionary


    【解决方案1】:

    Oracle Reference 谈到 COLS:

    "COLS is a synonym for USER_TAB_COLUMNS."
    

    这为您的难题提供了一个简单的答案:您通过不拥有表(或视图)的用户连接到数据库。更改您的用户或尝试从 ALL_TAB_COLUMNS 中进行选择(显示您拥有权限的所有表/视图的结果)。

    【讨论】:

    • 我认为在您发布帖子之前的某个地方,一位成员提到这也可能受到自 Oracle 8i 版本以来称为虚​​拟专用数据库的功能的影响,但是我认为该帖子已被删除, APC 你有这方面的 cmets 吗?亲切地。 :)
    • @ChinBoon - 虚拟专用数据库(AKA 细粒度访问控制)是一种通过定义应用于所有 DML 语句的附加过滤器来无形地限制对数据行以及 10gR2 之后的列的访问的机制.查看 DBMS_RLS 以了解更多信息。我认为这与您的情况无关,因为 VPD 不会应用于数据字典。
    猜你喜欢
    • 1970-01-01
    • 2022-01-19
    • 1970-01-01
    • 1970-01-01
    • 2014-09-01
    • 2013-08-27
    • 1970-01-01
    • 2016-03-20
    • 2022-01-09
    相关资源
    最近更新 更多