Python3操作oracle數據庫及遇到的報錯
阿新 • • 發佈:2017-10-18
python 操作oracle
首先下載及安裝cx_Oracle: 下載地址: 安裝:pip3.6 install E:\Python36\Scripts\cx_Oracle-6.0.2-cp36-cp36m-win_amd64.whl 編寫一個簡單的測試代碼:
import cx_Oracle as ora # print(ora.version) # 打開數據庫連接 # conn = ora.connect("temp", "admin", "localhost:1521/orcl") conn = ora.connect(‘temp/[email protected]:1521/orcl‘) # 使用cursor()方法獲取操作遊標 cr = conn.cursor()sql = ‘‘‘ select empno, ename, job, mgr, hiredate, sal, comm, deptno, sal+comm as a from emp WHERE deptno = :did ‘‘‘ cr.execute(sql,did = 30) for i in cr: print(i) # 關閉數據庫連接 cr.close() # 提交操作 #conn.commit() conn.close()
運行代碼,結果居然報錯了!
報錯內容如下:
conn = ora.connect(‘temp/[email protected]:1521/orcl‘)
UnicodeDecodeError: ‘utf-8‘ codec can‘t decode bytes in position 82-83: invalid continuation byte
一看就是一個字符編碼的問題,但無論怎麽設置都不能解決問題,在網上也找了類似的錯誤解決方案,都不能得到解決。
在百度看見一條說系統、oracle客戶端、Python要同樣是64位或者32位的,不然就報這個錯誤。
我的電腦系統是64位、Python也是64位的,但是oracle客戶端確是32的,這是因為我要連接plsql developer,以前的版本不支持64的客戶端。
這樣我刪除了32位的oracle客戶端,重新安裝了64位的客戶端,結果發現還是會報同樣的錯誤,我就郁悶了,突然靈光一閃環境變量沒有配,Python是需要oci.dll文件的,我就在環境變量中做了一下配置:
e:\Oracle\Instant Client\bin
重啟IDE,再次運行,問題解決。
Python3操作oracle數據庫及遇到的報錯