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线程中对join方法的运用的教程
Apr 09 Python
Python3 实现随机生成一组不重复数并按行写入文件
Apr 09 Python
selenium+python自动化测试之环境搭建
Jan 23 Python
使用python Telnet远程登录执行程序的方法
Jan 26 Python
Python写一个基于MD5的文件监听程序
Mar 11 Python
Python利用pandas处理Excel数据的应用详解
Jun 18 Python
python粘包问题及socket套接字编程详解
Jun 29 Python
python tkinter图形界面代码统计工具
Sep 18 Python
python之pymysql模块简单应用示例代码
Dec 16 Python
keras 解决加载lstm+crf模型出错的问题
Jun 10 Python
python的链表基础知识点
Sep 13 Python
Anaconda安装pytorch及配置PyCharm 2021环境
Jun 04 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编写的抽奖程序中奖概率算法
2015/05/14 PHP
PHP实现将优酷土豆腾讯视频html地址转换成flash swf地址的方法
2017/08/04 PHP
用YUI做了个标签浏览效果
2007/02/20 Javascript
Gird事件机制初级读本
2007/03/10 Javascript
JSON 客户端和服务器端的格式转换
2009/08/27 Javascript
js跨域问题之跨域iframe自适应大小实现代码
2010/07/17 Javascript
jquery 图片缩放拖动的简单实例
2014/01/08 Javascript
使用AngularJS实现可伸缩的页面切换的方法
2015/06/19 Javascript
使用javascript将时间转换成今天,昨天,前天等格式
2015/06/25 Javascript
jQuery实现MSN中文网滑动Tab菜单效果代码
2015/09/09 Javascript
AngularJS ng-style中使用filter
2016/09/21 Javascript
在 Angular 中实现搜索关键字高亮示例
2017/03/21 Javascript
JS数组去重(4种方法)
2017/03/27 Javascript
微信小程序实现多个按钮toggle功能的实例
2017/06/13 Javascript
Angular 向组件传递模板的两种方法
2018/02/23 Javascript
详解如何在webpack中做预渲染降低首屏空白时间
2018/08/22 Javascript
如何实现一个webpack模块解析器
2018/10/24 Javascript
jquery插件开发模式实例详解
2019/07/20 jQuery
python sort、sorted高级排序技巧
2014/11/21 Python
windows下ipython的安装与使用详解
2016/10/20 Python
python 返回列表中某个值的索引方法
2018/11/07 Python
django-rest-swagger的优化使用方法
2019/08/29 Python
Python3使用腾讯云文字识别(腾讯OCR)提取图片中的文字内容实例详解
2020/02/18 Python
python内打印变量之%和f的实例
2020/02/19 Python
Pycharm中安装wordcloud等库失败问题及终端通过pip安装的Python库如何添加到Pycharm解释器中(推荐)
2020/05/10 Python
python zip()函数的使用示例
2020/09/23 Python
利用CSS3的特性改变文本选中时的颜色
2013/09/11 HTML / CSS
使用html5 canvas创建太空游戏的示例
2014/05/08 HTML / CSS
UNIX文件系统分类
2014/11/11 面试题
中学生团员自我评价分享
2013/12/07 职场文书
小学运动会表扬稿
2014/01/19 职场文书
医学生职业生涯规划书范文
2014/03/13 职场文书
保密工作整改报告
2014/11/06 职场文书
2014年会计人员工作总结
2014/12/10 职场文书
Nginx配置并兼容HTTP实现代码解析
2021/03/31 Servers
Django中的JWT身份验证的实现
2021/05/07 Python