Linux下使用python脚本执行BCP导入导出方式
更新时间:2024年01月29日 16:09:18 作者:我是李超人
这篇文章主要介绍了Linux下使用python脚本执行BCP导入导出方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
使用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-8
import pymssql
import subprocess
class testBcp:
def getConn(self):
server = "192.168.1.1"
user= "sa"
password = "testBcp@1"
db = "TESTBCP"
# 打开数据库连接
conn = pymssql.connect(server,user,password,db)
return conn
def 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写入操作失败
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
selenium中get_cookies()和add_cookie()的用法详解
这篇文章主要介绍了selenium中get_cookies()和add_cookie()的用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-01-01
CentOS中使用virtualenv搭建python3环境
virtualenv可以搭建虚拟且独立的python环境,可以使每个项目环境与其他项目独立开来,保持环境的干净,解决包冲突问题。下面我们来详细探讨下centos中如何来搭建。2015-06-06
在Python3.74+PyCharm2020.1 x64中安装使用Kivy的详细教程
这篇文章主要介绍了在Python3.74+PyCharm2020.1 x64中安装使用Kivy的详细教程,本文通过图文实例相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-08-08


最新评论