2009-01-01 75 views
0

我有一個批處理文件是爲我正在嘗試導入到MySQL數據庫的Oracle數據庫創建的。我必須處理兩者之間的各種不一致。按照MySQL的預期,該文件的所有日期都是'17 -NOV-1981',而不是'1981-11-17'。更改日期格式,MySQL讀取

批處理文件有命令ALTER SESSION set nls_date_format ='DD-MON-YYYY';設置日期格式。在MySQL中是否有相當於讓它接受日期而不必主要編輯文件?

回答

2

我不相信這是可能的,沒有修改SQL。

STR_TO_DATE可用於插入語句來轉換字符串,或者您可以嘗試通過sed管道傳輸文件,並使用正則表達式來查找日期並對其進行修改,例如,像這樣將與調用STR_TO_DATE,並將生成的SQL轉換到MySQL替代單引號日期在原始轉儲...

cat oracledump.sql | sed "s/'[0-9][0-9]-\(JAN\|FEB\|MAR\|APR\|MAY\|JUN\|JUL\|AUG\|SEP\|OCT\|NOV\|DEC\)-[1-2][0-9][0-9][0-9]'/str_to_date(&, '%d-%b-%Y')/g" | mysql newdb 
+0

我改變了結束> output.sql但我得到的是精確相同的文件。日期沒有改變。 – thornate 2009-01-01 12:05:39