创建视图中的别名:
在内部,oracle将所有的别名和表名处理为大写。这些列名和表名在数据字典中就是以大写的形式存储的,而且oracle也希望它们是大写。在输入别名建立一个视图时,别名不应该用引号括起来。给别名加双引号会使oracle内部存储的列名变为大小写混合,如果这样做,除非在所有查询中给列名加上双引号,否则执行select时oracle将找不到列名。
在建立视图的别名时绝对不要使用双引号。
SQL> select * from dual;
DUMMY
-----
X
SQL> --创建测试视图
SQL> create view v_test as
2 select dummy "NewName" from dual;
View created
SQL> select * from v_test;
NewName
-------
X
SQL> --可以看到如果新建视图中别名用大小写混合后并且使用引号,查询出来的结果列名就是大小写混合的。
SQL> --如果指定查询列的时候字段没有用引号括起来,就会提示找不到列。
SQL> select newname from v_test;
select newname from v_test
ORA-00904: 无效列名
SQL> select NewName from v_test;
select NewName from v_test
ORA-00904: 无效列名
SQL> select "NewName" from v_test;
NewName
-------
X
SQL> --所以在创建视图的时候最好不要把别名用引号括起来。
SQL> --删除测试视图
SQL> drop view v_test;
View dropped
SQL>