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   当然也可能是其他拼接错误 大家注意检查。。

 

2. 

原因:

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


解决:

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

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

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

附:

查询ORACLE关键字语句:

  1. select * from v$reserved_words;   

注意建立表的时候尽量不要用oracle关键字

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

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

解决方案:

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

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

   正确的方式:

Xml代码 复制代码 收藏代码
  1. <property name="level" type="java.lang.Integer"> 
  2.              <column name='"level"' precision="1" scale="0" /> 
  3. property> 
  4.     
 
              
 
    

   错误的方式:

Xml代码 复制代码 收藏代码
  1. <property name="level" type="java.lang.Integer"> 
  2.              <column name="level" precision="1" scale="0" /> 
  3.        property> 
  4.    class> 

 


 

你可能感兴趣的:(数据库)