这篇文章是接着之前的文章在mac上安装oracle instant client 和 sqlplus写的。
如果按照之前的文章已经下载并配置完oracle client,其实在Jupyter notebook 已经可以进行连接远程oracle的数据库了。对了!需要确保已经安装了cx_Oracle包,如果没有安装,打开terminal,输入pip install cx_Oracle即可。之后打开一个jupyter notebook,在cell 中输入:
import cx_Oracle
con = cx_Oracle.connect('username', 'password', 'dsn')
如果没有报错,表明连接成功。
但是如果只是按照之前的文章,下载并配置oracle client,在pycharm中想用python连接远程oracle数据库,运行和jupyter notebook同样的code
import cx_Oracle
con = cx_Oracle.connect('username', 'password', 'dsn')
这时候会出现这个错误"DatabaseError: DPI-1047: 64-bit Oracle Client library cannot be loaded: "
我看到网上的解决方法,可以点击这里查看原文,我也将其复制粘贴到下边:
“ 原因是我的python2.7是64位的,并且装了cx_oracle6.1库,而数据库用了32位的instantclient-basic。
解决方案:下载个64位的,然后解压,配置64位的instantclient-basic路径到系统环境变量Path,重新运 行python脚本即可”
但是我是安装了64位的instantclient,仍然出现这个错误"DatabaseError: DPI-1047: 64-bit Oracle Client library cannot be loaded: " 。如果上述解决方案同样不适合你的问题,可以试试我下面说的方法。
打开terminal,输入:
mkdir ~/lib
ln -s /opt/oracle/instantclient_12_2/libclntsh.dylib.12.1 ~/lib/
执行完上述两句,再重新运行cx_Oracle.connect在pycharm中,我相信会连接成功。
—— —— —— —— —— —— —— 这里是分界线 —— —— —— —— —— —— ——
如果没有按照我之前的文章安装oracle client,按照下面的方法应该可以成功。但是我没有尝试,尝试的小伙伴如果成功或者不成功,希望留言告诉我,之后再update这部分。
1. 进入网站,下载“basic” 或者“basic light” 的压缩文件,我下载的是12 version。选择和你所安装的python 位数相同的,例如你的python是64-bit,就选择64-bit的下载。
2. 解压压缩文件到 /opt/oracle 文件夹下:
mkdir -p /opt/oracle
cd /opt/oracle
unzip ~/Downloads/instantclient-basic-macos.x64-12.2.0.1.0.zip
3. 这一步非常重要对于pycharm,否则就会报错“DatabaseError: DPI-1047: 64-bit Oracle Client library cannot be loaded: " 。
mkdir ~/lib
ln -s /opt/oracle/instantclient_12_2/libclntsh.dylib.12.1 ~/lib/
4. 测试
import cx_Oracle
con = cx_Oracle.connect('username', 'password', 'dsn')