【Python读取Oracle BLOB数据】

本文介绍了如何使用Python和cx_Oracle库从Oracle数据库中导出包含BLOB类型XML数据的文件,通过创建连接池、执行SQL查询并逐条写入文件的方法解决了问题。
摘要由CSDN通过智能技术生成

某种曲线将横纵坐标存储在xml文档中,程序会将XML文档按照BLOB数据类型存入Oracle数据库中。
现在需要将数据从Oracle导出。
尝试以下方法

1. 直接使用PLSQL develpment软件导出csv文件

image.png

这种方式导出后,发现BLOB文件只显示(BLOB)字符串,没有数据

image.png

2. 使用程序读取Oracle文件将BLOB类型数据导出

一开始打算使用Koa2实现,但是网上对于Koa2操作Oracle数据库文档参考比较少。
后来选择Python,之前处理excel数据也是使用python

1)首先安装cx_Oracle

pip install cx_Oracle

2) 配置Oracle

这次使用连接池的方式
配置数据库名和密码,以及数据库地址:端口/数据库名

pool = cx_Oracle.SessionPool("username", "password",
        "localhost:port/db", min=2, max=5, increment=1, encoding="UTF-8")

3)Python代码执行SQL并处理

以下是完成python代码

import cx_Oracle


pool = cx_Oracle.SessionPool("username", "password",
        "localhost:port/db", min=2, max=5, increment=1, encoding="UTF-8")

# 从连接池中获取一个连接
connection = pool.acquire()

# 使用连接进行查询
cursor = connection.cursor()
# 需要数据的SQL
sql = """SELECT a.ID, b.ID FROM  AA a LEFT outer JOIN BB b ON a.id = b.id left outer join CC c on a.id = c.id where b.id = '11' and rownum <= 10"""

datas = cursor.execute(sql)
i = 0;
for data in datas:
    # data[i] i索引根据sql输出的字段,从0开始向后
    filename = 'D:\python\' + data[0]
    f = open(filename, 'wb') # w模式只能写入字符串,wb可以写入字节
    # BLOB是一个一个元素的元组,使用[]将元组内容取出,read()函数读取BLOB字节内容
    f.write(data[1].read())
    i = i + 1
    print('写入第', i, '条数据')
    f.close
    # print(data[1].read())
print("写入完成")
# 将连接放回连接池
pool.release(connection)

# 关闭连接池
pool.close()

最后:基于以上代码成功将xml文件从Oracle数据库导出,小前端一点点积累后端知识哈。

image.png

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值