本以為很簡單,結果發現還是有些坑啊
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里面出現的中文要用雙引號而不能用單引號。。。。