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 相关文章推荐
linux系统使用python监测系统负载脚本分享
Jan 15 Python
python判断字符串是否包含子字符串的方法
Mar 24 Python
python实现在sqlite动态创建表的方法
May 08 Python
Python图像滤波处理操作示例【基于ImageFilter类】
Jan 03 Python
pandas DataFrame 行列索引及值的获取的方法
Jul 02 Python
windows 10 设定计划任务自动执行 python 脚本的方法
Sep 11 Python
使用python实现对元素的长截图功能
Nov 14 Python
Python使用扩展库pywin32实现批量文档打印实例
Apr 09 Python
Keras 中Leaky ReLU等高级激活函数的用法
Jul 05 Python
Python如何测试stdout输出
Aug 10 Python
Python 2.6.6升级到Python2.7.15的详细步骤
Dec 14 Python
python 远程执行命令的详细代码
Feb 15 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
Yii Framework框架获取分类下面的所有子类方法
2014/06/20 PHP
教你在header中隐藏php的版本信息
2016/08/10 PHP
[原创]PHP实现SQL语句格式化功能的方法
2017/07/28 PHP
lnmp安装多版本PHP共存的方法详解
2018/08/02 PHP
javascript中的缓动效果实现程序
2012/12/29 Javascript
收集json解析的四种方法分享
2014/01/17 Javascript
javascript学习笔记之10个原生技巧
2014/05/21 Javascript
基于javascript实现随机颜色变化效果
2016/01/14 Javascript
JS组件系列之Bootstrap table表格组件神器【终结篇】
2016/05/10 Javascript
jQuery点击头像上传并预览图片
2017/02/23 Javascript
利用node.js如何搭建一个简易的即时响应服务器
2017/05/28 Javascript
jquery的 filter()方法使用教程
2018/03/22 jQuery
Vue表单类的父子组件数据传递示例
2018/05/03 Javascript
解决betterScroll在vue中存在图片时,出现拉不动的问题
2018/09/27 Javascript
JavaScript实现图片放大镜效果
2019/06/27 Javascript
[03:58]兄弟们,回来开黑了!DOTA2昔日战友招募宣传视频
2016/07/17 DOTA
[51:29]Alliance vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
python实现文件分组复制到不同目录的例子
2014/06/04 Python
python基础教程之五种数据类型详解
2017/01/12 Python
python实现的多线程端口扫描功能示例
2017/01/21 Python
使用Python实现windows下的抓包与解析
2018/01/15 Python
python二维码操作:对QRCode和MyQR入门详解
2019/06/24 Python
python实时检测键盘输入函数的示例
2019/07/17 Python
Python读取ini配置文件传参的简单示例
2021/01/05 Python
纯CSS和jQuery实现的在页面顶部显示的进度条效果2例(仿手机浏览器进度条效果)
2014/04/16 HTML / CSS
CSS3 mask 遮罩的具体使用方法
2017/11/03 HTML / CSS
巴西葡萄酒销售网站:Wine.com.br
2017/11/07 全球购物
大学毕业登记表自我鉴定
2013/10/09 职场文书
综合实践活动方案
2014/02/14 职场文书
国旗下的演讲稿
2014/05/08 职场文书
个人委托书如何写
2014/09/25 职场文书
高三英语教学计划
2015/01/23 职场文书
python实现简易名片管理系统
2021/04/11 Python
python的变量和简单数字类型详解
2021/09/15 Python
Python Django项目和应用的创建详解
2021/11/27 Python
Ruby处理YAML和json数据
2022/04/18 Ruby