本文主要是介绍Linux下使用python脚本执行BCP导入导出操作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
创建一张表Test001
create table Test001(
ID int,
age int,
name varchar(50)
)
再创建一张表Test002
create table Test002(
Id int,
age int,
name varchar(50),
addr varchar(50)
)
插入三条数据
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-8import pymssql
import subprocessclass testBcp:def getConn(self):server = "192.168.1.1"user= "sa"password = "testBcp@1"db = "TESTBCP"# 打开数据库连接conn = pymssql.connect(server,user,password,db)return conndef BCPExe(self,bcpString):conn = self.getConn()# 使用cursor()方法获取操作游标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语句查询出结果集写入tempData.csv文件中tB.BCPExe(BCPout)#将文件中的数据写入表test001中tB.BCPExe(BCPin)
以上python脚本首先从test002中将数据查询出来,将结果集使用BCP写入tempData.csv文件中,然后再使用BCP将文件中的数据写入表test001中。此时可以看到test001中现在已经有数据了。
注意:如果文件中的数据源是来自于多个渠道,那么在拼接字符串的时候切记每个字段要使用’\t’隔开,否则会由于文件中数据格式不正确导致BCP写入操作失败。
这篇关于Linux下使用python脚本执行BCP导入导出操作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!