当前位置: 代码迷 >> 综合 >> ORA-01858: a non-numeric character was found where a numeric was expected 的一种可能错误情况
  详细解决方案

ORA-01858: a non-numeric character was found where a numeric was expected 的一种可能错误情况

热度:56   发布时间:2024-02-28 14:37:34.0

有这么一段sql,从传入参数CreateDTO 取effectDate属性,从yyy表取zzz属性,插入xxxx_table表。

<insert id="genZeroGrpInterestTraceByGrpNo" parameterClass="com.cmrh.gnc.healthacc.dto.CreateDTO" >insert into xxxxx_table (SETTLE_BILL_DATE,zzzz)select TO_DATE(#effectDate#,'yyyy-mm-dd hh24:mi:ss'),zzzz from yyy_table
</insert>

在工程内执行的时候,报错提示  ORA-01858: a non-numeric character was found where a numeric was expected 

直接把sql里面的变量替换,执行,没有报错(这个错误一些其他情况可以通过此方式排除)。怀疑是传值的问题。

再看下CreateDTO的effectDate属性,变量类型为Date,瞬间明白,这里不需要TO_DATE做转换。

把sql中转换effecdate属性的todate操作去掉,问题解决。

insert into xxxxx_table (SETTLE_BILL_DATE,zzzz)
select #effectDate#,zzzz from yyy_table

 

以上是本人在今晚实际遇到的问题,时间比较紧,写的比较粗糙

  相关解决方案