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" # 打開(kāi)數(shù)據(jù)庫(kù)連接 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語(yǔ)句查詢出結(jié)果集寫(xiě)入tempData.csv文件中 tB.BCPExe(BCPout) #將文件中的數(shù)據(jù)寫(xiě)入表test001中 tB.BCPExe(BCPin)
以上python腳本首先從test002中將數(shù)據(jù)查詢出來(lái),將結(jié)果集使用BCP寫(xiě)入tempData.csv文件中,然后再使用BCP將文件中的數(shù)據(jù)寫(xiě)入表test001中。
此時(shí)可以看到test001中現(xiàn)在已經(jīng)有數(shù)據(jù)了。
注意:
如果文件中的數(shù)據(jù)源是來(lái)自于多個(gè)渠道
那么在拼接字符串的時(shí)候切記每個(gè)字段要使用’\t’隔開(kāi)
否則會(huì)由于文件中數(shù)據(jù)格式不正確導(dǎo)致BCP寫(xiě)入操作失敗
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python pathlib模塊使用方法及實(shí)例解析
這篇文章主要介紹了Python pathlib模塊使用方法及實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10一篇文章帶你了解谷歌這些大廠是怎么寫(xiě) python 代碼的
這篇文章主要介紹了谷歌這些大廠怎么寫(xiě)python代碼,我們寫(xiě)代碼,往往還是按照其它語(yǔ)言的思維習(xí)慣來(lái)寫(xiě),那樣的寫(xiě)法不僅運(yùn)行速度慢,代碼讀起來(lái)也費(fèi)盡,給人一種拖泥帶水的感覺(jué),需要的朋友可以參考下2021-09-09詳解Python3操作Mongodb簡(jiǎn)明易懂教程
本篇文章主要介紹了詳解Python3操作Mongodb簡(jiǎn)明易懂教程,詳細(xì)的介紹了如何連接數(shù)據(jù)庫(kù)和對(duì)數(shù)據(jù)庫(kù)的操作,有需要的可以了解一下。2017-05-05selenium中g(shù)et_cookies()和add_cookie()的用法詳解
這篇文章主要介紹了selenium中g(shù)et_cookies()和add_cookie()的用法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01Python?Web后端開(kāi)發(fā)中的增查改刪處理
這篇文章主要介紹了Python?Web后端開(kāi)發(fā)中的增查改刪處理,文章圍繞主題?展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-08-08Python中實(shí)現(xiàn)變量賦值傳遞時(shí)的引用和拷貝方法
下面小編就為大家分享一篇Python中實(shí)現(xiàn)變量賦值傳遞時(shí)的引用和拷貝方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04CentOS中使用virtualenv搭建python3環(huán)境
virtualenv可以搭建虛擬且獨(dú)立的python環(huán)境,可以使每個(gè)項(xiàng)目環(huán)境與其他項(xiàng)目獨(dú)立開(kāi)來(lái),保持環(huán)境的干凈,解決包沖突問(wèn)題。下面我們來(lái)詳細(xì)探討下centos中如何來(lái)搭建。2015-06-06在Python3.74+PyCharm2020.1 x64中安裝使用Kivy的詳細(xì)教程
這篇文章主要介紹了在Python3.74+PyCharm2020.1 x64中安裝使用Kivy的詳細(xì)教程,本文通過(guò)圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08