使用cx_oracle连接到Oracle数据库可在Windows上提供DPI-1047

时间:2018-03-16 13:42:05

标签: python oracle oracle11g python-3.6 cx-oracle

import pandas as pd
import sqlalchemy

engine = sqlalchemy.create_engine('oracle://XXX:XXX@XXX:XXX/?service_name=XXX')

sql = 'select * from XXX where rownum < 10'
df = pd.read_sql(sql,con=engine)
  

DatabaseError:(cx_Oracle.DatabaseError)DPI-1047:64位Oracle   无法加载客户端库:“C:\ oracle \ 11.2.0 \ bin \ oci.dll不是   正确的架构“。见   https://oracle.github.io/odpi/doc/installation.html#windows寻求帮助

我正在尝试使用Python连接到Oracle数据库,但是我收到了上述错误。我知道:

  1. 我已设置路径以查看正确的位置 - 它显示在错误中。
  2. Python是64位。
  3. bin文件夹位置包含32位(ociw32.dll)和64位(oci.dll)文件。
  4. 但错误仍然告诉我架构是错误的。

    对此的任何帮助都会很棒 - 我无法弄清问题可能在哪里!

1 个答案:

答案 0 :(得分:1)

错误消息中提到的文件是32位DLL,而不是64位DLL - 至少假设检查这些事情的逻辑是正确的!代码正在使用此处提到的imagehelp API:How can I test a Windows DLL file to determine if it is 32 bit or 64 bit?。还有一些其他方法可以验证DLL是32位还是64位。检查PATH并确保在PATH中首先安装64位Oracle客户端。下载并解压缩64位Oracle Instant Client,以便快速轻松地进行测试。

相关问题