使用BCP 命令輸入大量的資料

來源:互聯網
上載者:User
 由於前段時間做大資料量的匯入程式.在做的時候遇到的問題.幾萬條的資料從Excel中匯入到資料庫中,速度是非常的慢,程式簡直不能運行,後來就研究了BCP命令的方式進行匯入.幾十萬的資料也就幾十秒,很快,所以將自己的小成果給大家分享.當然,可能有很多可以完善的地方,大家共同努力吧
 

使用BCP 命令輸入大量的資料

 

1:目的:將大兩資料輸入sql server 等資料庫

2:方法:BCP命令

3:實現方式:

 Sql 語句:

bulk   insert T1 from 'C:"TxtFile2.txt'

WITH

(   FIELDTERMINATOR=',',

    ROWS_PER_BATCH=100,

    errorfile='c:"aa.csv',

    formatfile='C:"sql.fmt'

)

From 後面的源檔案可以是txt 也可以是csv格式,兩種格式的FIELDTERMINATOR一樣都是’,’.

此外對於一張表,我可以只匯入某些欄位.這是我們必須用formatfile格式檔案進行映射.檔案的格式為”fmt”格式文法如下

<?xml version="1.0"?>

<BCPFORMAT

xmlns="http://schemas.microsoft.com/sqlserver/2004/bulkload/format"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

 <RECORD>

 <FIELD ID="1" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="50" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>

    <FIELD ID="2" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="200" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>

    <FIELD ID="3" xsi:type="CharTerm" TERMINATOR=""r"n" MAX_LENGTH="50" />

 </RECORD>

 <ROW>

 <COLUMN SOURCE="1" NAME="id" xsi:type="SQLVARYCHAR"/>     

    <COLUMN SOURCE="2" NAME="firstname" xsi:type="SQLVARYCHAR"/>

    <COLUMN SOURCE="3" NAME="age" xsi:type="SQLINT"/>

 </ROW>

</BCPFORMAT>

注意TERMINATOR的設定.是”,” 還是”"t”.txt和csv檔案為”,”

Excel格式檔案為”"t”.

目前已經通過了對txt和csv格式的匯入,對於xls檔案的匯入,還在進一步的研究中

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.