You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Anaconda Python连接32位Oracle?是否需改用64位?

Anaconda Python连接32位Oracle的问题解决

核心疑问解答

  • 不需要必须使用64位Oracle,但Python环境(Anaconda)与Oracle客户端的位数必须完全匹配:64位Anaconda对应64位Oracle客户端,32位Anaconda对应32位Oracle客户端,位数不匹配是你当前报错的主要原因。

错误信息翻译

InterfaceError: ('IM003', "[IM003] 指定的驱动程序未能加载,系统错误1114: 动态链接库(DLL)初始化例程失败。(Oracle dans OraClient12Home1, C:\Progra~1\ORA12\product\12.1.0\client_1\BIN\SQORA32.DLL). (160) (SQLDriverConnect)")

错误原因

  • Anaconda Python位数与Oracle客户端位数不匹配(比如64位Python调用32位Oracle驱动DLL)
  • Oracle客户端安装不完整,缺失依赖DLL
  • ODBC驱动配置错误或名称不匹配

修复步骤

  1. 确认Anaconda位数
    打开Anaconda Prompt,执行以下命令:

    python -c "import sys; print(sys.maxsize > 2**32)"
    

    返回True为64位,False为32位。

  2. 安装对应位数的Oracle客户端

    • 若Anaconda是64位:卸载现有32位Oracle客户端,安装64位Oracle Instant Client或完整客户端
    • 若Anaconda是32位:确保安装的是32位Oracle客户端,且安装路径无中文或特殊字符
  3. 配置对应位数的ODBC数据源

    • 64位系统打开64位ODBC管理器:C:\Windows\System32\odbcad32.exe
    • 32位系统或32位Python打开32位ODBC管理器:C:\Windows\SysWOW64\odbcad32.exe
    • 创建Oracle ODBC数据源,记录驱动名称(比如{Oracle in OraClient12Home1})
  4. 修正代码中的连接字符串
    修复拼写错误(如Microdsoft应为Microsoft)、换行问题,确保驱动名称与ODBC配置一致:

    import pyodbc
    # 驱动名称需与ODBC管理器中显示的完全一致
    connectString = 'Driver={Oracle in OraClient12Home1};Server=xx_xx_xx.server.lan:1521/xx_xx_xx.xx_xx_xx.server.lan;uid=xx;pwd=xx'
    cnxn = pyodbc.connect(connectString)
    cursor = cnxn.cursor()
    cursor.execute("SELECT DAVANCE.CD FROM DAVANCE")
    for row in cursor.fetchall():
        print(row)
    

内容的提问来源于stack exchange,提问作者VBA_Anne_Marie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 08:40:25