1. 程式人生 > >oracle中的date型別欄位的處理

oracle中的date型別欄位的處理

問題描述:將excel表中的資料匯入oracle資料庫中時,出現問題很多的date型別欄位,錯誤都是todate方法報出的

select  t.id  id,                       
        to_date(t.BIRTHDATE,'yyyy-mm')  BIRTHDATE         
from MEDICALCOLLEGE_ROSTER_TEMP t

錯誤:
UPDATE MEDICALCOLLEGE_ROSTER_TEMP t SET BIRTHDATE = trim(leading ' ' from t.BIRTHDATE)
2、ORA-01840:輸入值對於日期格式不夠長

解決辦法:引起的原因是資料庫中有NULL值欄位,導致todate函式接受到的引數值無法進行轉換,最簡單的可以為NULL值部分插入約定的某個日期

update MEDICALCOLLEGE_ROSTER_TEMP t set t.BIRTHDATE='1000.01' where t.BIRTHDATE is null
對長度不符合要求的進行擷取
UPDATE MEDICALCOLLEGE_ROSTER_TEMP t SET BIRTHDATE= subStr(t.BIRTHDATE, 0, 7) where length(t.BIRTHDATE) > 8;