从视图中选择别名不在oracle中工作

时间:2015-02-17 09:30:27

标签: oracle oracle11g oracle10g oracle-sqldeveloper

  create view f as select 1 as "f" from dual

  select f from f

这显示错误如何使用列名检索数据 enter image description here

1 个答案:

答案 0 :(得分:3)

您已将列名称声明为"f",因此列名称将作为f存储在数据库中,而不是F,如果您没有这样做,则默认为create or replace view f as select 1 as "f", 2 as f from dual; select table_name, column_name from user_tab_cols where table_name = 'F'; TABLE_NAME COLUMN_NAME ------------------------------ ------------------------------ F f F F 。在它周围加上双引号。

您需要完全按照您创建的列来引用该列 - 即。用双引号围绕它。双引号告诉Oracle完全按类型传递标识符名称,而不是将所有内容转换为大写(这是默认值)。

以下演示了有关视图列的元数据如何存储在字典中:

{{1}}

这就是为什么很难让你的标识符区分大小写的原因 - 你需要再用双引号引用它们。这样的痛苦......!