oracle 报ORA-01840 错误,原因是脏数据
·
执行一个简单的查询select * from vw_name where 1=1 and create_date<='2019-12-16'
create_date是个varchar2,正常来说应该是没问题的,但是突然就报ORA-01840。
解决过程,因为vw_name是个视图,里面的create_date 是从原始表中转换来的。
to_char(to_date(p.create_date, 'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd') create_date,
就是把原始表中的create_date先转成date,再转成varchar2。
原始表中的create_date的数据为varchar2 , 可以为yyyy-mm-dd HH24:mi:ss 或者 yyyy-mm-dd ,都没有问题。
但是,重点是, 在原始表的数据中发现了一条数据,他的create_date 是 334 。我去嘞。
改掉这条数据的create_date后。一切正常。
所以,引起这个错误,可能是错误的数据格式。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)