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 相关文章推荐
pyqt和pyside开发图形化界面
Jan 22 Python
python 爬虫出现403禁止访问错误详解
Mar 11 Python
Python3操作SQL Server数据库(实例讲解)
Oct 21 Python
详解django三种文件下载方式
Apr 06 Python
pandas 读取各种格式文件的方法
Jun 22 Python
Anaconda下配置python+opencv+contribx的实例讲解
Aug 06 Python
Selenium元素的常用操作方法分析
Aug 10 Python
python计算两个矩形框重合百分比的实例
Nov 07 Python
Python 实现打印单词的菱形字符图案
Apr 12 Python
使用Keras实现Tensor的相乘和相加代码
Jun 18 Python
Python grpc超时机制代码示例
Sep 14 Python
如何利用python发送邮件
Sep 26 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实现无限级分类
2014/12/24 PHP
PHP使用curl函数发送Post请求的注意事项
2016/11/26 PHP
Yii 2中的load()和save()示例详解
2017/08/03 PHP
javascript定义变量时加var与不加var的区别
2014/12/22 Javascript
JQuery设置时间段下拉选择实例
2014/12/30 Javascript
jQuery实现购物车数字加减效果
2015/03/14 Javascript
使用Raygun来自动追踪AngularJS中的异常
2015/06/23 Javascript
JavaScript实现滑动导航栏效果
2017/08/30 Javascript
快速搭建React的环境步骤详解
2017/11/06 Javascript
nginx部署访问vue-cli搭建的项目的方法
2018/02/12 Javascript
NodeJs项目中关闭ESLint的方法
2018/08/09 NodeJs
JS实现transform实现扇子效果
2020/01/17 Javascript
Mac OS X10.9安装的Python2.7升级Python3.3步骤详解
2013/12/04 Python
Python datetime时间格式化去掉前导0
2014/07/31 Python
Python构造函数及解构函数介绍
2015/02/26 Python
windows10系统中安装python3.x+scrapy教程
2016/11/08 Python
修复 Django migration 时遇到的问题解决
2018/06/14 Python
深入浅析Python中list的复制及深拷贝与浅拷贝
2018/09/03 Python
Python for循环与range函数的使用详解
2019/03/23 Python
python中update的基本使用方法详解
2019/07/17 Python
用Python画小女孩放风筝的示例
2019/11/23 Python
使用python创建生成动态链接库dll的方法
2020/05/09 Python
浅谈TensorFlow中读取图像数据的三种方式
2020/06/30 Python
Python with语句用法原理详解
2020/07/03 Python
PyQt中使用QtSql连接MySql数据库的方法
2020/07/28 Python
前端面试必备之CSS3的新特性
2017/09/05 HTML / CSS
HTML5的结构和语义(5):内嵌媒体
2008/10/17 HTML / CSS
HTML5+CSS3实现机器猫
2016/10/17 HTML / CSS
企业行政文员岗位职责
2013/12/03 职场文书
京剧自荐信
2014/01/26 职场文书
大学生职业生涯规划书汇总
2014/03/20 职场文书
青年文明号申报材料
2014/12/23 职场文书
入党自荐书范文
2015/03/05 职场文书
青年文明号创建口号大全
2015/12/25 职场文书
祝福语集锦:给百岁老人祝寿贺词
2019/11/19 职场文书
详解nginx location指令
2022/01/18 Servers