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 fileinput模块使用实例
May 28 Python
Python读写unicode文件的方法
Jul 10 Python
windows环境下tensorflow安装过程详解
Mar 30 Python
Python中浅拷贝copy与深拷贝deepcopy的简单理解
Oct 26 Python
PyTorch预训练的实现
Sep 18 Python
妙用itchat! python实现久坐提醒功能
Nov 25 Python
python模拟实现斗地主发牌
Jan 07 Python
python脚本监控logstash进程并邮件告警实例
Apr 28 Python
Django实现内容缓存实例方法
Jun 30 Python
Python截图并保存的具体实例
Jan 14 Python
python中pyqtgraph知识点总结
Jan 26 Python
Python实现随机生成迷宫并自动寻路
Jun 13 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
Zend Studio for Eclipse的java.lang.NullPointerException错误的解决方法
2008/12/06 PHP
PHP中限制IP段访问、禁止IP提交表单的代码
2011/04/23 PHP
浅析PHP Socket技术
2013/08/02 PHP
10个简化PHP开发的工具
2014/12/25 PHP
php+mysqli批量查询多张表数据的方法
2015/01/29 PHP
php解析url并得到url中的参数及获取url参数的四种方式
2015/10/26 PHP
Zend Framework框架之Zend_Mail实现发送Email邮件验证功能及解决标题乱码的方法
2016/03/21 PHP
js如何设置在iframe框架中指定div不显示
2013/12/04 Javascript
JavaScript使用replace函数替换字符串的方法
2015/04/06 Javascript
js电话号码验证方法
2015/09/28 Javascript
JS实现浏览器状态栏文字闪烁效果的方法
2015/10/27 Javascript
基于javascript实现图片预加载
2016/01/05 Javascript
使用jQuery处理AJAX请求的基础学习教程
2016/05/10 Javascript
js基于cookie记录来宾姓名的方法
2016/07/19 Javascript
javascript实现根据汉字获取简拼
2016/09/25 Javascript
JS图片压缩(pc端和移动端都适用)
2017/01/12 Javascript
jQury Ajax使用Token验证身份实例代码
2017/09/22 Javascript
一种angular的方法级的缓存注解(装饰器)
2018/03/13 Javascript
Vue安装浏览器开发工具的步骤详解
2019/05/12 Javascript
vue实现带复选框的树形菜单
2019/05/27 Javascript
webpack打包html里面img后src为“[object Module]”问题
2019/12/22 Javascript
Python迭代用法实例教程
2014/09/08 Python
Python实现1-9数组形成的结果为100的所有运算式的示例
2017/11/03 Python
Python学习之用pygal画世界地图实例
2017/12/07 Python
详解Python3网络爬虫(二):利用urllib.urlopen向有道翻译发送数据获得翻译结果
2019/05/07 Python
python设计tcp数据包协议类的例子
2019/07/23 Python
CSS3中的弹性布局em运用入门详解 1em等于多少像素
2021/02/08 HTML / CSS
美国家用电器和电子产品商店:Abt
2016/09/06 全球购物
会计自我鉴定
2013/11/02 职场文书
购房协议书范本(无房产证)
2014/10/07 职场文书
2014年车间主任工作总结
2014/12/10 职场文书
项目经理岗位职责范本
2015/04/01 职场文书
小学教师工作总结2015
2015/04/07 职场文书
任命通知范文
2015/04/21 职场文书
Go遍历struct,map,slice的实现
2021/06/13 Golang
一次线上mongo慢查询问题排查处理记录
2022/03/18 MongoDB