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定时检查启动某个exe程序适合检测exe是否挂了
Jan 21 Python
Python的__builtin__模块中的一些要点知识
May 02 Python
基于Python __dict__与dir()的区别详解
Oct 30 Python
Python3.6简单反射操作示例
Jun 14 Python
python 实现敏感词过滤的方法
Jan 21 Python
Python参数解析模块sys、getopt、argparse使用与对比分析
Apr 02 Python
Python3简单实现串口通信的方法
Jun 12 Python
ubuntu 18.04搭建python环境(pycharm+anaconda)
Jun 14 Python
Python画图实现同一结点多个柱状图的示例
Jul 07 Python
python3.6.8 + pycharm + PyQt5 环境搭建的图文教程
Jun 11 Python
Python如何读写字节数据
Aug 05 Python
Python2.6版本pip安装步骤解析
Aug 17 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
Yii2框架数据库简单的增删改查语法小结
2016/08/31 PHP
php判断目录存在的简单方法
2019/09/26 PHP
Laravel框架源码解析之入口文件原理分析
2020/05/14 PHP
JS日历 推荐
2006/12/03 Javascript
一个基于jQuery的树型插件(OrangeTree)使用介绍
2012/05/03 Javascript
用javascript将数据导入Excel示例代码
2014/09/10 Javascript
JS动态修改表格cellPadding和cellSpacing的方法
2015/03/31 Javascript
原生JavaScript实现动态省市县三级联动下拉框菜单实例代码
2016/02/03 Javascript
Node.js程序中的本地文件操作用法小结
2016/03/06 Javascript
深入浅析JSON.parse()、JSON.stringify()和eval()的作用详解
2016/04/03 Javascript
jQuery实现table中的tr上下移动并保持序号不变的实例代码
2016/07/11 Javascript
如何获取元素的最终background-color
2017/02/06 Javascript
JS简单判断滚动条的滚动方向实现方法
2017/04/28 Javascript
Vue.js实现的计算器功能完整示例
2018/07/11 Javascript
ES6中Promise的使用方法实例总结
2020/02/18 Javascript
微信小程序调用后台service教程详解
2020/11/06 Javascript
浅谈对yield的初步理解
2017/05/29 Python
python 定时修改数据库的示例代码
2018/04/08 Python
Python实现大数据收集至excel的思路详解
2020/01/03 Python
Python如何解除一个装饰器
2020/08/07 Python
Django中ORM的基本使用教程
2020/12/22 Python
Html5页面二次分享的实现
2018/07/30 HTML / CSS
泰国第一的化妆品网站:Konvy
2018/02/25 全球购物
英国曼彻斯特宠物用品品牌:Bunty Pet Products
2019/07/27 全球购物
秋季运动会加油稿200字
2014/01/11 职场文书
《长江之歌》教学反思
2014/04/17 职场文书
党员自评材料范文
2014/12/17 职场文书
骨干教师考核评语
2014/12/31 职场文书
道歉短信大全
2015/05/12 职场文书
纪录片信仰观后感
2015/06/08 职场文书
社区干部培训心得体会
2016/01/06 职场文书
用Python进行栅格数据的分区统计和批量提取
2021/05/27 Python
python 标准库原理与用法详解之os.path篇
2021/10/24 Python
微信小程序中wxs文件的一些妙用分享
2022/02/18 Javascript
MySQL实现配置主从复制项目实践
2022/03/31 MySQL
python库Tsmoothie模块数据平滑化异常点抓取
2022/06/10 Python