Python应用cx_Oracle获取oracle中的clob字段问题-创新互联
小编给大家分享一下Python应用cx_Oracle获取oracle中的clob字段问题,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
10年积累的网站制作、成都网站制作经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先制作网站后付款的网站建设流程,更有金乡免费网站建设让你可以放心的选择与我们合作。最近在用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的值',) ('HAD_ZYBJ_420_0004', 'HAD_LINK_TEMPLATE', 'LANE_NUM', 1, 'LINK_PID', None, None, '非空检查', '道路基本属性检查', 'Fatal', 'LANE_NUM字段不能为空', ) ('HAD_ZYBJ_420_0005', 'HAD_LINK_TEMPLATE', 'SEQ_NUM', 1, 'LINK_PID', None, None, '非空检查', '道路基本属性检查', 'Fatal', 'SEQ_NUM字段不能为空', ) ('HAD_ZYBJ_420_0006', 'HAD_LINK_TEMPLATE', 'WIDTH', 1, 'LINK_PID', None, None, '非空检查', '道路基本属性检查', 'Fatal', 'WIDTH字段不能为空', ) 。。。
这其中有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字段问题”有了一定的了解,如果想了解更多相关知识,欢迎关注创新互联成都网站设计公司行业资讯频道,感谢各位的阅读!
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
分享名称:Python应用cx_Oracle获取oracle中的clob字段问题-创新互联
标题来源:http://pwwzsj.com/article/ecgoi.html