首页 > 解决方案 > Pandas 连接到 Oracle 错误 oci.dll 不存在

问题描述

我正在尝试将 pandas 连接到 Oracle,如下所示(我已经下载了 oracle 客户端):

import pandas as pd
import cx_Oracle

username='a' 
password='d' 
host_name = 'aa.com' 
service_name= 'ss' 

dsn = cx_Oracle.makedsn(host=host_name,port=1535,sid=None,service_name=service_name)



con = cx_Oracle.connect(user=username, password=password, dsn= dsn ,encoding = "UTF-8", nencoding = "UTF-8")


my_sql_query=(""" SELECT * FROM schema.tbl1 WHERE ROWNUM =1 """) 

##1- Directly reading SQL to Pandas 
#Read SQL via Oracle connection to Pandas DataFrame 

df = pd.read_sql(my_sql_query, con=con) 

我得到:找不到 64 位 Oracle 客户端库:"C:\oracle\product\11.2.0\client_1\bin\oci.dll is not the correct architecture". See https://oracle.github.io/odpi/doc/installation.html#windows for help

当我单击消息中显示的链接时,它要求我运行一些 .exe 文件。这个文件要做什么?

标签: pandas

解决方案


您需要确保 Python、cx_Oracle 和 Oracle 客户端库都是相同的 64 位或 32 位架构。这听起来像你有一个不匹配。

错误中给出的链接用于 HTML 文档;它不运行 exe 文件。该文档提到需要一个 VS Redistributable - 这是一个 exe 文件。这是 Oracle Instant Client 所需的 Microsoft 软件包。


推荐阅读