sqlserver快速匯入匯出工具
由於客戶將sqlserver作為生產資料庫,所以最近半年時間一直在此下面做開發和學習。之前找開發工具也找了很長時間,最後總算找到一個比較喜歡的toad for mssql。
有次,需要將sqlserver的資料移植到oracle版本下,用oracle下的程式進行資料驗證。但是發現,toad for mssql的文字匯出實在太慢,600w的資料居然花了40多分鐘還沒導完,這樣的速度是無法容忍的。
經過大量的資料和查詢後,最後發現bcp這個工具。該工具匯出非常快速,同樣600w+的資料,只花了5分鐘左右的時間,全部匯出,而且符合格式要求。
參考命令如下:
bcp [table_name] out [file_name] -t "\t" -c -S [server_name] -U [username] -P [password]
含義如下:
[table_name]:表示要匯出的表;
out:表示匯出(in則表示匯入);
-t:表示以什麼作為欄位的分隔符。預設為製表符(即\t);
-c:表示以文字方式匯出;
-S:主機名;
-U:sqlserver使用者名稱;
-P:密碼;
更多資訊:
用法: bcp {dbtable | query} {in | out | queryout | format} 資料檔案
[-m 最大錯誤數] [-f 格式化檔案] [-e 錯誤檔案]
[-F 首行] [-L 末行] [-b 批大小]
[-n 本機型別] [-c 字元型別] [-w 寬字元型別]
[-N 將非文字保持為本機型別] [-V 檔案格式版本] [-q 帶引號的識別符號]
[-C 內碼表說明符] [-t 欄位終止符] [-r 行終止符]
[-i 輸入檔案] [-o 輸出檔案] [-a 資料包大小]
[-S 伺服器名稱] [-U 使用者名稱] [-P 密碼]
[-T 可信連線] [-v 版本] [-R 允許使用區域設定]
[-k 保留 Null 值] [-E 保留標識值]
[-h"載入提示"] [-x 生成 xml 格式化檔案]
[-d 資料庫名稱] [-K 應用程式意向]
該工具同樣適合於匯入,引數可以參考以上內容。但是,需要注意的是,bcp的匯入對日期型別會有問題。匯入報錯類似如下:
開始複製...
SQLState = 22005, NativeError = 0
Error = [Microsoft][SQL Server Native Client 11.0]對於造型說明無效的字元值
SQLState = 22005, NativeError = 0
Error = [Microsoft][SQL Server Native Client 11.0]對於造型說明無效的字元值
SQLState = 22005, NativeError = 0
Error = [Microsoft][SQL Server Native Client 11.0]對於造型說明無效的字元值
BCP 複製 in 失敗
出現該問題的原因是bcp在處理日期型別的時候,無法識別類似12-1-2014和1-12-2014這樣的日期資料。似乎是bcp的一個bug,暫時也沒有找到有效的修復補丁。
可以嘗試在sql環境下用如下方式解決:
bulk insert table_name
from 'filename'--如:c:\filename.csv
with
( FIELDTERMINATOR ='\t', -- 分隔符
--ROWTERMINATOR ='\n',
KILOBYTES_PER_BATCH=5000,
firstrow=1
)
該方式匯入的速度極快,130w左右的資料,10s左右即可匯入。非常方便。
有關bulk insert的更多內容可參考官方文件:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12932950/viewspace-1096912/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQLServer匯出匯入資料到MySQLServerMySql
- SqlServer 匯入 MySqlServerMySql
- spring boot + easypoi快速實現excel匯入匯出Spring BootExcel
- Activity 流程模型匯入匯出-activity流程模型匯入匯出模型
- Mysql匯入&匯出MySql
- doris匯入匯出
- esayExcel匯入匯出Excel
- SQLSERVER匯出TXT文字檔案,ORACLE SQL LOADER匯入TXT文字檔案SQLServerOracle
- mongodb使用自帶命令工具匯出匯入資料MongoDB
- dmfldr快速匯出
- vue excel匯入匯出VueExcel
- navlicat 匯入匯出SQLSQL
- Oracle資料庫匯入匯出。imp匯入命令和exp匯出命令Oracle資料庫
- SQLServer匯入大CSV檔案SQLServer
- Angular Excel 匯入與匯出AngularExcel
- sqoop資料匯入匯出OOP
- Oracle 資料匯入匯出Oracle
- 資料泵匯出匯入
- .net6 匯入匯出
- Oracle資料匯入匯出Oracle
- phpMyAdmin匯入/匯出資料PHP
- 【docker】docker映象匯出匯入Docker
- ASP.NET 開源匯入匯出庫Magicodes.IE 完成Csv匯入匯出ASP.NET
- excel匯入工具Excel
- Vue框架下實現匯入匯出Excel、匯出PDFVue框架Excel
- HExcel,一個簡單通用的匯入匯出Excel工具類Excel
- vue + element + 匯入、匯出excel表格VueExcel
- sqoop部署及匯入與匯出OOP
- (十一)Electron 匯入匯出檔案
- docker匯入&匯出離線映象Docker
- kxcel, 方便匯入和匯出 ExcelExcel
- AWR跨庫匯出與匯入
- datapump 匯出匯入ORA-07445
- Colab pydrive 匯入匯出csv(pandas)
- MySQL入門--匯出和匯入資料MySql
- [Docker核心之容器、資料庫檔案的匯入匯出、容器映象的匯入匯出]Docker資料庫
- 【原創】POI匯入匯出工具類
- 快速匯出requestment.txt
- EBS快速匯入值集