ORA-01747: user.table.column, table.column 或列说明无效 异常解决方法总结

  1. sql 拼接错误如:

update ch_product_wuliu_rule SET set ‘prodid’ = 85736, ‘proname’ =测试酒品一, ‘prodno’ = yss001, ‘produnit’ = 组, ‘oneprod’ = 12, ‘oneprods’ = 41, ‘oneprodsmoney’ =13, ‘builddate’ = null, ‘updatedate’ = null, ‘bak’ =呵呵呵 WHERE ‘prodid’ =85736

多了个set 当然也可能是其他拼接错误 大家注意检查。。

原因:

创建表时使用了comment作为字段名称,查询语句中使用了comment字段,而comment是ORACEL的关键字,所以查询时出错。

解决:

1.创建表是不使用ORACLE的关键字作为表字段名。

2.oracle 表字段关键字的查询 : 把字段名加上双引号,并且严格区分大小写。

建议采用第一种方法解决,减少出现其他问题的几率。

附:

查询ORACLE关键字语句:

select * from v$reserved_words;
注意建立表的时候尽量不要用oracle关键字

3 。 还是由于第二种情况 只不过是在用一些ROM框架的时候配置不周而引起的

在oracle数据库里面有一个字段名叫: leave

解决方案:

然后hibernate里面配置这个leave字段后,则会报列名无效,

如果一定要用这个,则需要用‘’括起来。就解决问题。

正确的方式:

   Xml代码
<property name="level" type="java.lang.Integer"> 
             <column name='"level"' precision="1" scale="0" /> 
</property> 
 <property name="level" type="java.lang.Integer">
              <column name='"level"' precision="1" scale="0" />
 </property>
Xml代码 
<property name="level" type="java.lang.Integer"> 
             <column name="level" precision="1" scale="0" /> 
       </property> 
   </class> 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值