Linux下使用python腳本執(zhí)行BCP導(dǎo)入導(dǎo)出方式
使用python腳本執(zhí)行BCP導(dǎo)入導(dǎo)出
創(chuàng)建一張表Test001
create table Test001( ID int, age int, name varchar(50) )
再創(chuàng)建一張表Test002
create table Test002( Id int, age int, name varchar(50), addr varchar(50) )
插入三條數(shù)據(jù)
insert into Test002 values(1,25,'Bob','New York') insert into Test002 values(2,22,'Mary','HongKong') insert into Test002 values(3,25,'David','London')

Python腳本
#!/usr/bin/env python
#coding=utf-8
import pymssql
import subprocess
class testBcp:
def getConn(self):
server = "192.168.1.1"
user= "sa"
password = "testBcp@1"
db = "TESTBCP"
# 打開數(shù)據(jù)庫連接
conn = pymssql.connect(server,user,password,db)
return conn
def BCPExe(self,bcpString):
conn = self.getConn()
# 使用cursor()方法獲取操作游標(biāo)
cursor = conn.cursor()
result_code = subprocess.call(bcpString, shell=True)
print(result_code)
if __name__=="__main__":
tB=testBcp()
BCPout="bcp 'select ID,age,name from TESTBCP.dbo.Test002' queryout tempData.csv -c -U sa -P testBcp@1 -S 192.168.1.1"
BCPin='bcp TESTBCP.dbo.Test001 in tempData.csv -c -U sa -P testBcp@1 -S 192.168.1.1'
#select ID,age,name from TESTBCP.dbo.Test002 使用sql語句查詢出結(jié)果集寫入tempData.csv文件中
tB.BCPExe(BCPout)
#將文件中的數(shù)據(jù)寫入表test001中
tB.BCPExe(BCPin)以上python腳本首先從test002中將數(shù)據(jù)查詢出來,將結(jié)果集使用BCP寫入tempData.csv文件中,然后再使用BCP將文件中的數(shù)據(jù)寫入表test001中。
此時可以看到test001中現(xiàn)在已經(jīng)有數(shù)據(jù)了。

注意:
如果文件中的數(shù)據(jù)源是來自于多個渠道
那么在拼接字符串的時候切記每個字段要使用’\t’隔開
否則會由于文件中數(shù)據(jù)格式不正確導(dǎo)致BCP寫入操作失敗
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Pytorch DataLoader 變長數(shù)據(jù)處理方式
今天小編就為大家分享一篇Pytorch DataLoader 變長數(shù)據(jù)處理方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01
python+django+sql學(xué)生信息管理后臺開發(fā)
這篇文章主要為大家詳細介紹了python+django+sql學(xué)生信息管理后臺開發(fā),具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-01-01
python實現(xiàn)自動登錄跳轉(zhuǎn)頁面并獲取信息
這篇文章主要為大家詳細介紹了如何使用python實現(xiàn)自動登錄跳轉(zhuǎn)頁面并獲取信息功能,文中的示例代碼講解詳細,有需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-05-05
Python中實現(xiàn)進度條的多種方法總結(jié)
在Python編程中,進度條是一個非常有用的功能,它能讓用戶直觀地了解任務(wù)的進度,提升用戶體驗,本文將介紹幾種在Python中實現(xiàn)進度條的常用方法,并通過代碼示例和案例來展示它們的具體應(yīng)用,需要的朋友可以參考下2025-01-01
pycharm編寫spark程序,導(dǎo)入pyspark包的3中實現(xiàn)方法
這篇文章主要介紹了pycharm編寫spark程序,導(dǎo)入pyspark包的3中實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-08-08

