连接Oracle

instant_oracle configure

参考博客

下载 cx_Oracle

$ pip install cx_Oracle

或者 安装文件的下载地址

注意事项:

  • cx_Oracle下载的位数版本一定要和Python的位数版本相同,例如本地装的32位的Python,就一定要装32位的cx_Oracle。
  • 本地oracle_instant的版本也必须得是32位的,因为在import cx_Oracle的时候会出现ImportError: DLL load failed: 找不到指定的模块。的问题,需要将instant_oracle安装目录D:\Oracle\instantclient_11_2中的oci.dll,oraociei11.dll,ocijdbc11.dll添加到\Python27\Lib\site-packages目录下,而oci.dll不同位数的版本下是不一样的。
  • 在PyCharm中开发时,如果你的PyCharm是64位的,那么import cx_Oracle会报错。但是可以运行。

因此必须要保证 Python、cx_Oracle、instant_oracle 位数版本一致,要么都是32位的要么都是64位的。PyCharm 位数版本最好也一致,如果你有强迫症的话。

Note: Custom OCI applications, such as those that bundle Instant Client, may want to link with -rpath set to the directory containing Instant Client 12.1 instead of relying on libraries being in ~/lib.

在MAC系统下出现下面的问题时

ImportError: dlopen(/Library/Python/2.7/site-packages/cx_Oracle.so, 2): Library not loaded: @rpath/libclntsh.dylib.12.1
      Referenced from: /Library/Python/2.7/site-packages/cx_Oracle.so
      Reason: image not found

手动将@rpath对应的LC_RPATH添加到cx_Oracle.so中,出现上面的问题的详细解释

$ install_name_tool -add_rpath /opt/oracle/instantclient_12_1/ /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/cx_Oracle.so 

cx_Oracle 的使用

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,一毛也是爱

打开支付宝扫一扫,即可进行扫码打赏哦