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> 
发布了14 篇原创文章 · 获赞 4 · 访问量 3939

猜你喜欢

转载自blog.csdn.net/weixin_44003528/article/details/104919288