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里面出现的中文要用双引号而不能用单引号。。。。

 

posted @ 2017-12-04 14:22  fionaplanet  阅读(4748)  评论(0编辑  收藏  举报