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 实现插入排序算法
Jun 05 Python
python实现文本去重且不打乱原本顺序
Jan 26 Python
12步教你理解Python装饰器
Feb 25 Python
flask框架使用orm连接数据库的方法示例
Jul 16 Python
浅谈Python在pycharm中的调试(debug)
Nov 29 Python
Python+threading模块对单个接口进行并发测试
Jun 25 Python
Tensorflow tf.dynamic_partition矩阵拆分示例(Python3)
Feb 07 Python
matplotlib绘制多子图共享鼠标光标的方法示例
Jan 08 Python
详解用 python-docx 创建浮动图片
Jan 24 Python
python开发实时可视化仪表盘的示例
May 07 Python
详解Python自动化之文件自动化处理
Jun 21 Python
Python中递归以及递归遍历目录详解
Oct 24 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结束标签的使用细节探讨及联想
2013/03/04 PHP
PHP使用ob_start生成html页面的方法
2014/11/07 PHP
PHP中你应该知道的require()文件包含的正确用法
2015/06/12 PHP
PHP通过微信跳转的Code参数获取用户的openid(关键代码)
2016/07/06 PHP
laravel框架中控制器的创建和使用方法分析
2019/11/23 PHP
jQuery EasyUI API 中文文档 - ComboGrid 组合表格
2011/10/13 Javascript
Mac地址验证的javascript代码
2013/11/09 Javascript
JQuery中dataGrid设置行的高度示例代码
2014/01/03 Javascript
jquery获取一个元素下面相同子元素的个数代码
2014/07/31 Javascript
15个jquery常用方法、小技巧分享
2015/01/13 Javascript
JS和css实现检测移动设备方向的变化并判断横竖屏幕
2015/05/25 Javascript
JS控制按钮10秒钟后可用的方法
2015/12/22 Javascript
Bootstrap select多选下拉框实现代码
2016/12/23 Javascript
原生JS中slice()方法和splice()区别
2017/03/06 Javascript
原生JavaScript实现的简单省市县三级联动功能示例
2017/05/27 Javascript
react router 4.0以上的路由应用详解
2017/09/21 Javascript
vue中组件的3种使用方式详解
2019/03/23 Javascript
laypage+SpringMVC实现后端分页
2019/07/27 Javascript
微信小程序云函数使用mysql数据库过程详解
2019/08/07 Javascript
vue 动态给每个页面添加title、关键词和描述的方法
2020/08/28 Javascript
python抓取豆瓣图片并自动保存示例学习
2014/01/10 Python
Python实现的简单dns查询功能示例
2017/05/24 Python
python导入坐标点的具体操作
2019/05/10 Python
Python socket模块方法实现详解
2019/11/05 Python
python实现梯度下降算法的实例详解
2020/08/17 Python
Hotels.com泰国:酒店预订网站
2019/11/20 全球购物
Servlet的生命周期
2013/08/25 面试题
应聘自荐书
2013/10/08 职场文书
化学教师教学反思
2014/01/17 职场文书
2014年计算机专业个人自我评价
2014/01/19 职场文书
中韩经贸翻译专业大学生职业生涯规划范文
2014/09/18 职场文书
质监局领导班子践行群众路线整改方案
2014/10/26 职场文书
群众路线自查报告及整改措施
2014/11/04 职场文书
民事诉讼答辩状范文
2015/05/21 职场文书
解析原生JS getComputedStyle
2021/05/25 Javascript
Matplotlib绘制条形图的方法你知道吗
2022/03/21 Python