萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> MySQL(csv,text)導入mssql使用方法

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

MySQL(csv,text)導入mssql是非常的簡單了但是在導入過程中會碰到text字段問題了,下面我們就來看一篇關於MySQL(csv,text)導入mssql使用方法吧,具體的操作細節如下所示。

分兩步處理,第一步是將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,填寫必要的主機名、登錄名、口令,如下

mysql_import_into_mssql_via_nf

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

後面應該沒有什麼難度了

copyright © 萬盛學電腦網 all rights reserved