最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python如何應(yīng)用cx_Oracle獲取oracle中的clob字段問題

 更新時(shí)間:2019年08月27日 10:04:33   作者:倔強(qiáng)McWang  
今天小編就為大家分享一篇Python如何應(yīng)用cx_Oracle獲取oracle中的clob字段問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

最近在用Python編寫連接數(shù)據(jù)庫獲取記錄的腳本,其中用到了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')
對(duì)于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)
--獲取游標(biāo)
cursor = db1.cursor() 
--執(zhí)行查詢
sql = "select * from tab" 
cursor.execute(sql)
--獲取數(shù)據(jù) ,可以有多種方式 fetchall(),fetchmang(N)(N 為正整數(shù)),fetchone()
result = cursor.fetchall() 
count = cursor.rowcount 

在自己進(jìn)行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字段。搜尋了半天,有應(yīng)用dbms_lob.substr(clob字段,4000,1)這種方法容易報(bào)錯(cuò),并且和其他字段一起選擇時(shí),出現(xiàn)字符緩沖區(qū)不足的問題。

之后又找到方法說新建個(gè)字段然后利用這個(gè)dbms_lob的方法將clob字段轉(zhuǎn)換為一個(gè)新的temp字段。但是這個(gè)方法你無法確定選取多長的字符串。

最后通過詢問后才發(fā)現(xiàn)原來問題出現(xiàn)在我使用了cursor.fetchall()這個(gè)方法,只需要我在fetchall之前對(duì)cursor進(jìn)行操作,即:

cursor.execute(sql)
for row in cursor:
print(row[11])#或者print(row[11].read()),row[11]是clob字段

問題解決!

以上這篇Python如何應(yīng)用cx_Oracle獲取oracle中的clob字段問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

肥乡县| 鹿泉市| 项城市| 武城县| 布尔津县| 敖汉旗| 施甸县| 抚远县| 许昌市| 通河县| 邵阳县| 日喀则市| 广灵县| 宜阳县| 轮台县| 新平| 邵阳县| 夹江县| 阳春市| 浪卡子县| 青海省| 阿瓦提县| 阳高县| 栾城县| 怀来县| 凤庆县| 平乐县| 永修县| 盱眙县| 多伦县| 桑日县| 稻城县| 烟台市| 拜城县| 钦州市| 绍兴市| 巴楚县| 吉安市| 镇沅| 嘉禾县| 启东市|