批量處理BCP匯入檔案到資料庫

2021-07-25 00:19:55 字數 1163 閱讀 3174

今天接到個任務,csv檔案匯入到資料庫中。

心想小case,結果一看驚呆了,有上萬個資料檔案,每個檔案中有幾萬條資料。

效率問題是要考慮的首要因素。

因為之前做過bcp匯入,腦海中立馬有了思路:迴圈所有檔案,執行bcp命令就可以了吧,決定把它做成個bat批處理。

過程當中遇到的幾個問題,mark下:

1. csv檔案中的內容格式(是用,分割還是空格分隔),否則執行bcp匯入時候會提示相應的錯誤

2. 蛋疼的bat語法

1. 上萬個資料檔案

2. 匯入sqlserver

3. 同時記錄log檔案

批量匯入資料檔案的批處理**如下:(儲存為input.bat)

@echo off

setlocal enabledelayedexpansion rem 設定變數延遲的效果,為了下面的計數 !sum!

set destpath=d:\tools\bcp\csv

set destext=*.csv rem 模糊檢索.csv檔案

set /a sum=0

for /f "delims=" %%i in ('dir /b/a-d/s %destpath%\%destext%') rem 迴圈指定資料夾下的檔案,注意dir 後面的引數

do (

echo, rem 輸出空行(效率高)

set /a sum+=1

echo ------------------------------------!sum!------------------------------------

echo %%i

bcp mydb.dbo.tb_test in %%i -t "\," -c -s 172.168.1.2 -u sa -p 123456 rem bcp匯入資料檔案到資料庫,一定要主要格式-t -c,符合你的文字格式,否則匯入報錯

)pause

把執行的log記錄下來,可以另外新建個bat檔案,呼叫上面建立的bat,如下實現:

call input.bat => aa.log

echo "complete!!!"

pause

2萬多個資料檔案,匯入了總共2.7億資料,用時1個小時左右,還是蠻快的

匯入檔案到資料庫

include include include seetime.h include writeoff inc.h db user fee detail db user fee detail connection amsconn char sql 1024 ind user fee detail by...

Excel批量匯入到資料庫

using system using system.collections.generic using system.linq using system.web using system.web.ui using system.web.ui.webcontrols using system.data...

從Excel批量匯入資料到資料庫

1.讀取網路路徑的excel檔案 流檔案格式 2.獲取excel的每一行資料,並驗證學校班級是否存在,並獲取對應的schoolid和classid 3.批量儲存學生資訊,並返回儲存成功的行數 匯入關於excel的pom檔案 org.apache.poigroupid poiartifactid 3....