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 01 Python
Python中不同进制互相转换(二进制、八进制、十进制和十六进制)
Apr 05 Python
Python基础教程之tcp socket编程详解及简单实例
Feb 23 Python
Django中ORM表的创建和增删改查方法示例
Nov 15 Python
详解Python nose单元测试框架的安装与使用
Dec 20 Python
使用python爬取B站千万级数据
Jun 08 Python
Python 确定多项式拟合/回归的阶数实例
Dec 29 Python
如何用Python来理一理红楼梦里的那些关系
Aug 14 Python
Python 开发工具PyCharm安装教程图文详解(新手必看)
Feb 28 Python
TensorFlow2.X使用图片制作简单的数据集训练模型
Apr 08 Python
python网络爬虫实现发送短信验证码的方法
Feb 25 Python
TensorFlow的自动求导原理分析
May 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
基于pear auth实现登录验证
2010/02/26 PHP
用PHP实现读取和编写XML DOM代码
2010/04/07 PHP
php数组中包含中文的排序方法
2014/06/03 PHP
PHP基于DOM创建xml文档的方法示例
2017/02/08 PHP
php压缩文件夹最新版
2018/07/18 PHP
php文件后缀不强制为.php的实操方法
2019/09/18 PHP
在laravel-admin中列表中禁止某行编辑、删除的方法
2019/10/03 PHP
使用 JScript 创建 .exe 或 .dll 文件的方法
2011/07/13 Javascript
jquery触发a标签跳转事件示例代码
2013/07/21 Javascript
使用js实现雪花飘落效果
2013/08/26 Javascript
jquery checkbox实现单选小例
2013/11/27 Javascript
ExtJS4中的requires使用方法示例介绍
2013/12/03 Javascript
复制网页内容,粘贴之后自动加上网址的实现方法(脚本之家特别整理)
2014/10/16 Javascript
JS、jQuery中select的用法详解
2016/04/21 Javascript
js输出数据精确到小数点后n位代码
2016/07/02 Javascript
详解如何在angular2中获取节点
2017/11/23 Javascript
详解Angular5路由传值方式及其相关问题
2018/04/28 Javascript
分享一个vue项目“脚手架”项目的实现步骤
2019/05/26 Javascript
[01:10]DOTA2 Supermajor:英雄,由我们见证
2018/05/14 DOTA
Python中关于字符串对象的一些基础知识
2015/04/08 Python
Python itertools模块详解
2015/05/09 Python
python爬虫获取多页天涯帖子
2018/02/23 Python
python 中if else 语句的作用及示例代码
2018/03/05 Python
Python实现数据结构线性链表(单链表)算法示例
2019/05/04 Python
浅析PEP572: 海象运算符
2019/10/15 Python
Python 面向对象之类class和对象基本用法示例
2020/02/02 Python
浅谈pymysql查询语句中带有in时传递参数的问题
2020/06/05 Python
Window10上Tensorflow的安装(CPU和GPU版本)
2020/12/15 Python
DAWGS鞋官方网站:鞋,凉鞋,靴子
2016/10/04 全球购物
阿联酋航空假期:Emirates Holidays
2018/03/20 全球购物
Bose加拿大官方网站:美国知名音响品牌
2019/03/21 全球购物
LightInTheBox法国站:中国跨境电商
2020/03/05 全球购物
个人优缺点自我评价
2014/01/27 职场文书
《长江之歌》教学反思
2014/04/17 职场文书
我有一个梦想演讲稿
2014/05/05 职场文书
简历自我评价模板
2015/03/11 职场文书