windows連接oracle數據庫


本以為很簡單,結果發現還是有些坑啊

1. 安裝cx_oracle

pip install cx_oracle

或者用whi文件,這樣你能知道版本號那些https://www.lfd.uci.edu/~gohlke/pythonlibs/#cx_oracle 

2. 下載Instantclient

這個是關鍵的一步,一定要對應你的cx_oracle版本,比如上面我是12的,所以下載的instantclient_12_1 然后解壓,然后解壓將其中的oci.dll拷貝到$Python_Home 或者 $Python_Home\Lib\site-packages 目錄下,注意一定要版本一致,否則會報ImportError: DLL load failed: 找不到指定的模塊。

3.雖然這樣是可以使用cx_Oracle了,但是實際操作數據庫的時候可能會出現cx_Oracle.InterfaceError: Unable to acquire Oracle environment handle這個錯誤,解決方法是拷貝oci.dll, oraociei12.dll, oraocci12.dll到site-package中。另外一種方法是為instantclient12c設置環境變量,這樣就不用拷貝dll文件了

 

參考博客

http://blog.csdn.net/longxj04/article/details/64922138 

import cx_Oracle
import os
import sys
import pandas as pd
reload(sys)
sys.setdefaultencoding('utf8')
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.AL32UTF8'
username = '**'
password = '**'
tns = '**:**/ORCL'
conn = cx_Oracle.connect(username,password,tns)
cursor = conn.cursor()

cursor.execute('select * from STUDENT')
result = cursor.fetchall()
datas = pd.DataFrame(result)
print datas
cursor.close()
conn.close()

完了又遇到一個很坑的事情,sql里面有中文一直報錯,我以為是編碼問題,結果是sql里面出現的中文要用雙引號而不能用單引號。。。。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM