MySQL(csv,text)匯入mssql使用方法

來源:互聯網
上載者:User

分兩步處理,第一步是將csv匯入到mysql。沒有使用mssql內建用戶端的匯入功能,因為這個功能太坑,嘗試N多種方法仍然是報錯,因此選擇先轉換成mysql做中間步驟。

csv/text匯入MySQL

一批很大的csv資料(其實並非csv,而是定位字元分隔欄位),要匯入到mssql資料庫裡。

首先在cygwin下使用awk對資料做預先處理,只篩選出字元數正確的行。並且在首行加入列名,以便匯入工具自動做列對應。

然後計算各欄位最大長度;因為欄位數太多(63個),所以計算一下,用於構造create table語句。對於最大長度在255以下的欄位使用varchar(n)型,255以上使用longtext類型。

#參考下面語句

$ awk -F "\t" 'NF==63 {print $0}' all.csv >all_63f.txt
$ head -1 origin_text_file.txt >h.txt
$ dos2unix h.txt       #注意最好不要帶BOM,否則自行另存一下,避免麻煩
$ cat h.txt all_63f.txt >a63_with_head.txt

#最大計算字元長度,本身並不複雜,只是寫在一行裡,閱讀不太方便
$ awk -F "\t" 'BEGIN{for(i=1;i<=63;i++){xcount[i]=0}} {for(i=1;i<=63;i++){if(xcount[i]<length($i) ){xcount[i]=length($i)}}} END{for(i=1;i<=63;i++){print i,xcount[i]}}' all_63f.txt接下來使用Navicat for MySQL將匯入csv。navcate可以試用,功能足夠用;如果使用頻繁,建議購買授權。

MySQL匯入mssql

以下win2008 x64下的mssql 2012為例。

安裝mysql的.net驅動 http://dev.mysql.com/downloads/connector/

create table,建表,與mysql結構一致。

使用mssql內建匯入功能匯入資料,匯入資料來源選擇 .Net Framework Data Provider for MySQL,填寫必要的主機名稱、登入名稱、口令,如下

不能選擇來源資料表,必須寫select 語句,如: select f1,f2,f3… from `db`.`table` where 1

後面應該沒有什麼難度了

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.