通過excel導入oracle爲Date字段時報錯的問題

1、D_TDATE GDK-05030: 日期格式模式在轉換整個輸入字符串之前結束。 CREATEDATE GDK-05043: 無效的月份

報錯sql通常爲insert into 表  value (...,to_date(“09/01/2018”),....)

而且to_date對應的日期格式與excle裏的格式大不相同,比如如下格式

這是因爲oracle有個默認識別時間的格式

1、查詢oracle當前會話日期格式:(eg,sqldevelper客戶端,每次啓動鏈接,會話格式都會默認。需要重新設置一下)

select value from nls_session_parameters where parameter='NLS_DATE_FORMAT';

默認格式:DD-MON-RR

我們需要把格式進行更改爲我們上面的格式

2、轉換oracle的日期格式:

alter session set nls_date_format = 'YYYY/MM/DD HH24:MI:SS';

3、另外我們還需要對excle的格式進行處理

   3.1把日期的列使用  =TEXT(AZ5,"yyyy/mm/dd hh:mm:ss")複製出來爲一個新列

   3.2對新列複製到後面一列,右擊選擇性粘貼,採用取數值粘貼,刪除前面兩列數據

4、導入數據。

5、如果導入還是存在to_date報錯的問題,即數據庫列爲date類型,導進去的sql在進行to_date的時候沒有進行格式,所以無法導入

  這裏可以複製新表create table newTable as select * from Table,把newTable的date格式改成字符串格式(varchar2/varchar)

 導入數據到新表newTable ,然後再複製新表數據到目標表insert into Table select * from newTable

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章