今日在工作中遇到了一个奇怪的事情,在oracle的一个view里面,一般我们都将列名设置为大写,但是偶尔有一次,设置成小写了:
例如:
然后有两个 字段是 :
area , order_status
这个时候在 oracle中我们必须这样查询:
select "area" from V_DLVY_PO; 不能这样
select area from V_DLVY_PO; 如果这两个字段是 :
AREA , ORDER_STATUS
那么查询可以直接写为:
select AREA from V_DLVY_PO;
也许在oracle中这样写很容易,只要知道就行了,但是在Hibernate中,就会复杂一点:
由于表的列名是小写,我们在配置文件中也习惯小写:
name="area"
type="java.lang.String"
update="true"
insert="true"
column="area"
/>然后会报
ORA-00904错误,标识符无效
解决办法:
1. 将上述配置文件改为:
name="area"
type="java.lang.String"
update="true"
insert="true"
column="AREA"
/>
2. 将oracle view 中的列改为大写:AREA
3. 上述两种方案都采用(最保险了)
问题得到解决。