今天接手一个新项目,是使用oracle数据库的.一开始没什么,但是在使用查询数据时,出现了问题.
select username from USER
当我使用这条sql语句时,出现了 ORA-00904: “USERNAME”: invalid identifier错误.
一开始,我没搞明白是怎么回事,因为我在此之前使用
select account from EMPLOYEEFORECOLOGY
来查询时,是能够正常查询的.
后来经过一番查看,我发现问题出在表字段上,由于表是别人建的,我没有仔细看过.直到这个问题发生,我才看到原来USER表中的字段名是小写的,而EMPLOYEEFORECOLOGY 表中的字段名是大写的.
而oracle在查询时,会将查询字段变成大写的,结果就是USER中没有大写的USERNAME字段,只有小写的username字段,所以查询不到.而EMPLOYEEFORECOLOGY 中的字段都是大写的,自然是能够查询到ACCOUNT字段.
最后的解决办法,在username上加引号
select "username" from USER
当然,如果表名是小写的话,也要加引号,否则也会报错.
之所以会发生这种情况,大致上是因为在建表时不是用sql语句建表,而是用的可视化工具的建表功能建的表.或者其它.在此还是希望大家在建表时表名和字段名还是全部大写.不要一些小写,一些大写的.