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中利用Into包整洁地进行数据迁移的教程
Mar 30 Python
Python闭包实现计数器的方法
May 05 Python
在Python的Flask框架中构建Web表单的教程
Jun 04 Python
python导入时小括号大作用
Jan 10 Python
详解 Python中LEGB和闭包及装饰器
Aug 03 Python
python批量设置多个Excel文件页眉页脚的脚本
Mar 14 Python
python调用Matplotlib绘制分布点并且添加标签
May 31 Python
Python将一个Excel拆分为多个Excel
Nov 07 Python
Python 把序列转换为元组的函数tuple方法
Jun 27 Python
django之使用celery-把耗时程序放到celery里面执行的方法
Jul 12 Python
Python实现隐马尔可夫模型的前向后向算法的示例代码
Dec 31 Python
python区块链实现简版工作量证明
May 25 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
php session 错误
2009/05/21 PHP
CodeIgniter配置之config.php用法实例分析
2016/01/19 PHP
PHP中抽象类和抽象方法概念与用法分析
2016/05/24 PHP
yii通过小物件生成view的方法
2016/10/08 PHP
[原创]php集成安装包wampserver修改密码后phpmyadmin无法登陆的解决方法
2016/11/23 PHP
Laravel5框架添加自定义辅助函数的方法
2018/08/01 PHP
jquery 经典动画菜单效果代码
2010/01/26 Javascript
JS代码判断IE6,IE7,IE8,IE9的函数代码
2013/08/02 Javascript
jquery slibings选取同级其他元素的实现代码
2013/11/15 Javascript
JavaScript头像上传插件源码分享
2016/03/29 Javascript
AngularJS表单验证中级篇(3)
2016/09/28 Javascript
从零开始学习Node.js系列教程三:图片上传和显示方法示例
2017/04/13 Javascript
JavaScript选取(picking)和反选(rejecting)对象的属性方法
2017/08/16 Javascript
浅析从vue源码看观察者模式
2018/01/29 Javascript
详解使用angular框架离线你的应用(pwa指南)
2019/01/31 Javascript
javascript简单实现深浅拷贝过程详解
2019/10/08 Javascript
python自带的http模块详解
2016/11/06 Python
Python获取本机所有网卡ip,掩码和广播地址实例代码
2018/01/22 Python
基于windows下pip安装python模块时报错总结
2018/06/12 Python
浅析Python 3 字符串中的 STR 和 Bytes 有什么区别
2018/10/14 Python
Python3标准库总结
2019/02/19 Python
基于Python批量生成指定尺寸缩略图代码实例
2019/11/20 Python
Python变量作用域LEGB用法解析
2020/02/04 Python
关于Python不换行输出和不换行输出end=““不显示的问题(亲测已解决)
2020/10/27 Python
UGG雪地靴德国官网:UGG德国
2016/11/19 全球购物
Bealls Florida百货商店:生活服饰、家居装饰和鞋子
2018/02/23 全球购物
高中毕业生个人自我鉴定
2013/11/24 职场文书
安全资料员岗位职责
2013/12/14 职场文书
服装厂厂长职责
2013/12/16 职场文书
热爱祖国演讲稿
2014/05/04 职场文书
应届毕业生自荐信
2014/05/28 职场文书
优秀班集体事迹材料
2014/12/25 职场文书
2015年医德医风工作总结
2015/04/02 职场文书
python-opencv 中值滤波{cv2.medianBlur(src, ksize)}的用法
2021/06/05 Python
React 并发功能体验(前端的并发模式)
2021/07/01 Javascript
Go Plugins插件的实现方式
2021/08/07 Golang