2006年12月18日

mysql移至oracle的經驗記錄

上個星期都在忙處理mysql的資料匯到oracle中,本來是用sqlldr來處理,後來想到要處理的table很多,就開始找了一些工具來處理。試過了oracle官方軟体,但只支援mysql4.x;再找了Intelligent Converters,發現中文匯入會有問題,最後還是自已diy處理了.........

一些心得分享:

1、如需轉碼的話,可利用linux中的iconv這個指令處理,範列如下:
  iconv -f big5 -t utf-8 test.ctl >  test_utf8.ctl
2、如只是單純要資料的話,可使用下列的方法(我是指分段是以$):
   select * into outfile 'tag.txt' fields terminated by '$' from t_tag;
3、如只是要ddl的話,可使用:   
mysqldump -u root -p -d test-db > test_db_ddl.txt  
4、如只是要得到insert的sql語法,可使用
mysqldump -u root -p -t  --disable-keys -e --skip-extended-insert  test_db_sql  > test_db_sql.txt
5、可以利用一些linux的小工具幫忙處理資料格式,下列是我處理日期的範列(在日期前面加上to_date): 
cat test.txt  | sed -e 's/....-..-.. ..:..:../to_date(&,)/g' > test1.txt
6、因為mysql得到的insert後面是);,所以還要再處理
); ==> )
7、如oracle裏有規定no null的話,就要把空白值多一個空格
,, ==> ,' ',
8、如有換行的話,要用chr(10)取代
\r\n  ==> '||chr(10)||'
9、資料格式都處理完後,寫一隻程式,然後把sql的文字檔讀入,然後再一行一行的寫入
10、完成~~

希望下次再處理mysql匯入oracle時,官方的軟体已有支援mysql5.x了,不然又要再diy一次了~~~=.="


Posted by my_work at 樂多Roodo! │15:12 │回應(2)引用(0)DB
樂多分類:網路/3C 共同主題:Oracle 工具:加入樂多書籤編輯本文
Ads by Roodo! 

引用URL

http://cgi.blog.roodo.com/trackback/2579830
回應文章
請問一下 那套oracle官方轉換軟體叫做什麼阿?
小弟我最近也為mysql資料轉到oracle裡在苦惱
看了大大的程式仍不得其解
請大大指導一下 或是給我那套軟體 感恩!!
Posted by yuko at 2007年03月21日 11:40
Posted by 睡貓 at 2007年03月21日 15:31