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 判断一个进程是否存在
Apr 09 Python
在Python的Django框架中为代码添加注释的方法
Jul 16 Python
pycharm修改界面主题颜色的方法
Jan 17 Python
python+pyqt5实现KFC点餐收银系统
Jan 24 Python
PyTorch之图像和Tensor填充的实例
Aug 18 Python
Win10 安装PyCharm2019.1.1(图文教程)
Sep 29 Python
pandas实现excel中的数据透视表和Vlookup函数功能代码
Feb 14 Python
python GUI库图形界面开发之PyQt5图片显示控件QPixmap详细使用方法与实例
Feb 27 Python
python模拟实现分发扑克牌
Apr 22 Python
python 画条形图(柱状图)实例
Apr 24 Python
Python3.8安装Pygame教程步骤详解
Aug 14 Python
Python高阶函数与装饰器函数的深入讲解
Nov 10 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 define()函数以及defined()函数的用法详解
2013/06/05 PHP
如何使用php判断所处服务器操作系统的类型
2013/06/20 PHP
php学习笔记之面向对象
2014/11/08 PHP
php实现银联商务公众号+服务窗支付的示例代码
2019/10/12 PHP
本地对象Array的原型扩展实现代码
2010/12/04 Javascript
基于jquery &amp; json的省市区联动代码
2012/06/26 Javascript
jquery实现输入框动态增减的实例代码
2013/07/14 Javascript
Jquery Post处理后不进入回调的原因及解决方法
2014/07/15 Javascript
node.js中的fs.ftruncate方法使用说明
2014/12/15 Javascript
关于Vue.js一些问题和思考学习笔记(1)
2016/12/02 Javascript
NodeJS学习笔记之Module的简介
2017/03/24 NodeJs
在node中如何使用 ES6
2017/04/22 Javascript
js中let和var定义变量的区别
2018/02/08 Javascript
async/await地狱该如何避免详解
2018/05/10 Javascript
JavaScript基于数组实现的栈与队列操作示例
2018/12/22 Javascript
layui 数据表格 点击分页按钮 监听事件的实例
2019/09/02 Javascript
微信小程序实现滑动翻页效果(完整代码)
2019/12/06 Javascript
微信小程序使用 vant Dialog组件的正确方式
2020/02/21 Javascript
jquery插件懒加载的示例
2020/10/24 jQuery
python脚本实现统计日志文件中的ip访问次数代码分享
2014/08/06 Python
Python selenium实现微博自动登录的示例代码
2018/05/16 Python
python 与服务器的共享文件夹交互方法
2018/12/27 Python
利用Python实现手机短信监控通知的方法
2019/07/22 Python
python批量将excel内容进行翻译写入功能
2019/10/10 Python
python 实现提取log文件中的关键句子,并进行统计分析
2019/12/24 Python
浅谈在django中使用redirect重定向数据传输的问题
2020/03/13 Python
图解Python中深浅copy(通俗易懂)
2020/09/03 Python
EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的
2015/07/24 面试题
大型车展策划方案
2014/02/01 职场文书
保安岗位职责
2014/02/21 职场文书
我的求职择业计划书
2014/04/04 职场文书
优秀教导主任事迹材料
2014/05/09 职场文书
2015年保险公司个人工作总结
2015/05/22 职场文书
先进个人主要事迹怎么写
2015/11/04 职场文书
详解PHP服务器如何在有限的资源里最大提升并发能力
2021/05/25 PHP
MySql存储过程之逻辑判断和条件控制
2021/05/26 MySQL