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後。一切正常。

 

所以,引起這個錯誤,可能是錯誤的數據格式。

發佈了74 篇原創文章 · 獲贊 14 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章