Python如何應(yīng)用cx_Oracle獲取oracle中的clob字段問題
最近在用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') 對于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
在自己進行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)這種方法容易報錯,并且和其他字段一起選擇時,出現(xiàn)字符緩沖區(qū)不足的問題。
之后又找到方法說新建個字段然后利用這個dbms_lob的方法將clob字段轉(zhuǎn)換為一個新的temp字段。但是這個方法你無法確定選取多長的字符串。
最后通過詢問后才發(fā)現(xiàn)原來問題出現(xiàn)在我使用了cursor.fetchall()這個方法,只需要我在fetchall之前對cursor進行操作,即:
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)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
- python通配符之glob模塊的使用詳解
- Python全局變量global關(guān)鍵字詳解
- python里glob模塊知識點總結(jié)
- Python: glob匹配文件的操作
- Python全局變量與global關(guān)鍵字常見錯誤解決方案
- 簡單了解python關(guān)鍵字global nonlocal區(qū)別
- 使用python matploblib庫繪制準(zhǔn)確率,損失率折線圖
- Python內(nèi)置函數(shù)locals和globals對比
- 淺析python標(biāo)準(zhǔn)庫中的glob
- Python3標(biāo)準(zhǔn)庫glob文件名模式匹配的問題
- Python中 Global和Nonlocal的用法詳解
- Python 內(nèi)置函數(shù)globals()和locals()對比詳解
- python中的global關(guān)鍵字的使用方法
- Python動態(tài)參數(shù)/命名空間/函數(shù)嵌套/global和nonlocal
- Python文件名的匹配之clob庫
相關(guān)文章
使用python 將圖片復(fù)制到系統(tǒng)剪貼中
今天小編就為大家分享一篇使用python 將圖片復(fù)制到系統(tǒng)剪貼中,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12使用matplotlib庫實現(xiàn)圖形局部數(shù)據(jù)放大顯示的實踐
本文主要介紹了使用matplotlib庫實現(xiàn)圖形局部數(shù)據(jù)放大顯示的實踐,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02Python XlsxWriter模塊Chart類用法實例分析
這篇文章主要介紹了Python XlsxWriter模塊Chart類用法,結(jié)合實例形式分析了Python XlsxWriter模塊Chart類功能、圖表繪制常用方法及相關(guān)操作注意事項,需要的朋友可以參考下2019-03-03Python框架Flask的基本數(shù)據(jù)庫操作方法分析
這篇文章主要介紹了Python框架Flask的基本數(shù)據(jù)庫操作方法,結(jié)合實例形式分析了Flask框架數(shù)據(jù)庫操作常用函數(shù)功能、用法及相關(guān)注意事項,需要的朋友可以參考下2018-07-07win10下Python3.6安裝、配置以及pip安裝包教程
下面小編就為大家?guī)硪黄獁in10下Python3.6安裝、配置以及pip安裝包教程。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-10-10