环境:
- python3.7
- SQL SERVER数据库
一、需求描述:
第一种:数据库存储文件
sqlserver数据库中有image字段类型用于存放二进制文件:
该字段用于存放文件或者图片的二进制数据,现需要将该字段数据迁移至oracle数据库中,对应字段为:
第二种:数据库存储大文本
sql server中有nvarchar(max)字段存放大段文本描述:
现需要将该字段数据迁移至oracle数据库中,对应字段为:
这里主要针对第一种情况,数据库中image字段存放的是某种特定后缀文件(例如:.doc文件、.png文件)的二进制数据,可以通过python读取该字段的二进制文件,并写入文件,保存为相同后缀,即可打开查看文件内容。
二、pip安装pymssql模块
下载链接: https://www.lfd.uci.edu/~gohlke/pythonlibs/
下载上图圈出来的那个,在cmd下安装:
三、编写python脚本
# -*- coding :utf-8 -*-
import pymssql
serverName = '数据库IP地址'
userName='数据库登录名称'
password='密码'
i=0
conn = pymssql.connect(serverName,userName,password,"数据库名称")
cursor = conn.cursor()
cursor.execute('select top 5 data from 表名')
#迭代cursor变量,row变量存放一条记录
for row in cursor :
try:
#以二进制写的形式打开文件,不存在则创建该文件
f=open(str(i) + '.doc', 'wb')
#将二进制数据写入文件
f.write(row[0])
print ('文件' + str(i) + '.doc' + '写入成功!')
except Exception as e:
print ('文件' + str(i) + '.doc'+'写入失败!')
#关闭
f.close()
i=i+1