Python如何应用cx_Oracle获取oracle中的clob字段问题


Posted in Python onAugust 27, 2019

最近在用Python编写连接数据库获取记录的脚本,其中用到了cx_Oracle模块。它的语法主要如下:

cx_Oracle.connect('username','pwd','IP/HOSTNAME:PORT/TNSNAME')
import cx_Oracle
db1=cx_Oracle.connect('yang','yang','127.0.0.1:1523/yangdb')
db2=cx_Oracle.connect('yang/yang@127.0.0.1:1523/yangdb')
对于dsn 方式:
makedsn(IP/HOST,PORT,TNSNAME)
dsn=cx_Oracle.makedsn('127.0.0.1','1523','yangdb')
db3=cx_Oracle.connect('yang','yang',dsn)
例子:
oracle@rac3:/home/oracle/python>vim conndb4.py 
import cx_Oracle
username = "yang"
pwd = "yang"
--建立连接
dsn=cx_Oracle.makedsn('127.0.0.1','1523','yangdb')
db1=cx_Oracle.connect(username,pwd,dsn)
--获取游标
cursor = db1.cursor() 
--执行查询
sql = "select * from tab" 
cursor.execute(sql)
--获取数据 ,可以有多种方式 fetchall(),fetchmang(N)(N 为正整数),fetchone()
result = cursor.fetchall() 
count = cursor.rowcount

在自己进行cursor.fetchall()操作后,得出result如下:

('HAD_ZYBJ_420_0003', 'HAD_LINK_TEMPLATE', 'TYPE', 1, 'LINK_PID', None, 'TYPE', '值域检查', '道路基本属性检查', 'Fatal', 'TYPE字段存在非0、1、2的值', <cx_Oracle.LOB object at 0x00000000071E2170>)
('HAD_ZYBJ_420_0004', 'HAD_LINK_TEMPLATE', 'LANE_NUM', 1, 'LINK_PID', None, None, '非空检查', '道路基本属性检查', 'Fatal', 'LANE_NUM字段不能为空', <cx_Oracle.LOB object at 0x00000000071E2190>)
('HAD_ZYBJ_420_0005', 'HAD_LINK_TEMPLATE', 'SEQ_NUM', 1, 'LINK_PID', None, None, '非空检查', '道路基本属性检查', 'Fatal', 'SEQ_NUM字段不能为空', <cx_Oracle.LOB object at 0x00000000071E21B0>)
('HAD_ZYBJ_420_0006', 'HAD_LINK_TEMPLATE', 'WIDTH', 1, 'LINK_PID', None, None, '非空检查', '道路基本属性检查', 'Fatal', 'WIDTH字段不能为空', <cx_Oracle.LOB object at 0x00000000071E21D0>)
。。。

这其中有clob字段。搜寻了半天,有应用dbms_lob.substr(clob字段,4000,1)这种方法容易报错,并且和其他字段一起选择时,出现字符缓冲区不足的问题。

之后又找到方法说新建个字段然后利用这个dbms_lob的方法将clob字段转换为一个新的temp字段。但是这个方法你无法确定选取多长的字符串。

最后通过询问后才发现原来问题出现在我使用了cursor.fetchall()这个方法,只需要我在fetchall之前对cursor进行操作,即:

cursor.execute(sql)
for row in cursor:
print(row[11])#或者print(row[11].read()),row[11]是clob字段

问题解决!

以上这篇Python如何应用cx_Oracle获取oracle中的clob字段问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现可以断点续传和并发的ftp程序
Sep 13 Python
python itchat实现微信好友头像拼接图的示例代码
Aug 14 Python
详解Django的CSRF认证实现
Oct 09 Python
python判断字符串或者集合是否为空的实例
Jan 23 Python
Django中如何防范CSRF跨站点请求伪造攻击的实现
Apr 28 Python
Python中的十大图像处理工具(小结)
Jun 10 Python
PyQT5 QTableView显示绑定数据的实例详解
Jun 25 Python
python3 实现函数写文件路径的正确方法
Nov 27 Python
python中使用you-get库批量在线下载bilibili视频的教程
Mar 10 Python
python爬虫---requests库的用法详解
Sep 28 Python
python利用proxybroker构建爬虫免费IP代理池的实现
Feb 21 Python
pycharm2021激活码使用教程(永久激活亲测可用)
Mar 30 Python
在Python中获取操作系统的进程信息
Aug 27 #Python
python3 下载网络图片代码实例
Aug 27 #Python
Python (Win)readline和tab补全的安装方法
Aug 27 #Python
python中字典按键或键值排序的实现代码
Aug 27 #Python
python操作openpyxl导出Excel 设置单元格格式及合并处理代码实例
Aug 27 #Python
Python使用get_text()方法从大段html中提取文本的实例
Aug 27 #Python
简单易懂Pytorch实战实例VGG深度网络
Aug 27 #Python
You might like
dedecms后台验证码总提示错误的解决方法
2007/03/21 PHP
PHP不用递归实现无限分级的例子分享
2014/04/18 PHP
ThinkPHP数据操作方法总结
2015/09/28 PHP
php如何实现不借助IDE快速定位行数或者方法定义的文件和位置
2017/01/17 PHP
PhpStorm本地断点调试的方法步骤
2018/05/21 PHP
PDO::getAvailableDrivers讲解
2019/01/28 PHP
解决Laravel5.2 Auth认证退出失效的问题
2019/10/14 PHP
js 巧妙去除数组中的重复项
2010/01/25 Javascript
浏览器页面区域大小的js获取方法
2013/09/21 Javascript
Event altKey,ctrlKey,shiftKey属性解析
2013/12/18 Javascript
extJS中常用的4种Ajax异步提交方式
2014/03/07 Javascript
jquery+javascript编写国籍控件
2015/02/12 Javascript
JS中捕获console.log()输出的方法
2015/04/16 Javascript
jQuery对JSON数据进行排序输出的方法
2015/06/24 Javascript
JavaScript动态检验密码强度的实现方法
2016/11/09 Javascript
详解JavaScript中数组的reduce方法
2016/12/02 Javascript
javascript 秒表计时器实现代码
2017/03/09 Javascript
jquery实现提示语淡入效果
2017/05/05 jQuery
vue实现一个移动端屏蔽滑动的遮罩层实例
2017/06/08 Javascript
gulp教程_从入门到项目中快速上手使用方法
2017/09/14 Javascript
Vue前端开发规范整理(推荐)
2018/04/23 Javascript
使用apifm-wxapi快速开发小程序过程详解
2019/08/05 Javascript
python实现的登陆Discuz!论坛通用代码分享
2014/07/11 Python
在Python的Bottle框架中使用微信API的示例
2015/04/23 Python
实例讲解Python中浮点型的基本内容
2019/02/11 Python
Python JSON格式数据的提取和保存的实现
2019/03/22 Python
简单了解Python读取大文件代码实例
2019/12/18 Python
python解析多层json操作示例
2019/12/30 Python
Python ckeditor富文本编辑器代码实例解析
2020/06/22 Python
小学生自我鉴定
2013/10/12 职场文书
《跨越海峡的生命桥》教学反思
2014/02/24 职场文书
微电影大赛策划方案
2014/06/05 职场文书
2014年信息技术工作总结
2014/12/16 职场文书
2015年学校教务处工作总结
2015/05/11 职场文书
爱护环境建议书
2015/09/14 职场文书
Python如何将list中的string转换为int
2022/07/15 Ruby