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标准库os.path包、glob包使用实例
Nov 25 Python
Python脚本判断 Linux 是否运行在虚拟机上
Apr 25 Python
Python浅拷贝与深拷贝用法实例
May 09 Python
解决Pycharm无法import自己安装的第三方module问题
May 18 Python
python使用matplotlib绘制热图
Nov 07 Python
详解Python logging调用Logger.info方法的处理过程
Feb 12 Python
Python numpy.zero() 初始化矩阵实例
Nov 27 Python
通过python连接Linux命令行代码实例
Feb 18 Python
Python实现屏幕录制功能的代码
Mar 02 Python
Python实现在Windows平台修改文件属性
Mar 05 Python
Python如何把字典写入到CSV文件的方法示例
Aug 23 Python
属性与 @property 方法让你的python更高效
Sep 21 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 在5.1.* 和5.2.*之间 PDO数据库操作中的不同之处小结
2012/03/07 PHP
IIS安装Apache伪静态插件的具体操作图文
2013/07/01 PHP
php安装xdebug/php安装pear/phpunit详解步骤(图)
2013/12/22 PHP
php禁止浏览器使用缓存页面的方法
2014/11/07 PHP
PHP实现的简单在线计算器功能示例
2017/08/02 PHP
php7函数,声明,返回值等新特性介绍
2018/05/25 PHP
详解PHP实现支付宝小程序用户授权的工具类
2018/12/25 PHP
jQuery中使用了document和window哪些属性和方法小结
2011/09/13 Javascript
自定义函数实现IE7与IE8不兼容js中trim函数的问题
2015/02/03 Javascript
jquery简单的弹出层浮动层代码
2015/04/27 Javascript
javascript html5 canvas实现可拖动省份的中国地图
2016/03/11 Javascript
功能强大的Bootstrap使用手册(一)
2016/08/02 Javascript
微信小程序 textarea 组件详解及简单实例
2017/01/10 Javascript
JS实现二叉查找树的建立以及一些遍历方法实现
2017/04/17 Javascript
详解JS中的attribute属性
2017/04/25 Javascript
vue的无缝滚动组件vue-seamless-scroll实例
2017/12/18 Javascript
jQuery滑动效果实现方法分析
2018/09/05 jQuery
详解ES6 Promise对象then方法链式调用
2018/10/20 Javascript
python求列表交集的方法汇总
2014/11/10 Python
Python3.5.3下配置opencv3.2.0的操作方法
2018/04/02 Python
利用pandas将numpy数组导出生成excel的实例
2018/06/14 Python
pycharm远程linux开发和调试代码的方法
2018/07/17 Python
Python面向对象程序设计多继承和多态用法示例
2019/04/08 Python
Python注释、分支结构、循环结构、伪“选择结构”用法实例分析
2020/01/09 Python
python实现图像高斯金字塔的示例代码
2020/12/11 Python
css3实现多个元素依次显示效果
2017/12/12 HTML / CSS
h5网页水印SDK的实现代码示例
2019/02/19 HTML / CSS
大学生应聘推荐信范文
2013/11/19 职场文书
行政文员实习自我鉴定范文
2014/09/14 职场文书
党员先进性教育整改措施
2014/09/18 职场文书
机关作风建设剖析材料
2014/10/11 职场文书
三年级学生评语大全
2014/12/26 职场文书
婚礼长辈答谢词
2015/09/29 职场文书
高中物理教学反思
2016/02/19 职场文书
2016年第二十五次全国助残日活动总结
2016/04/01 职场文书
MySQL 使用SQL语句修改表名的实现
2021/04/07 MySQL