用python连接oracle数据库

您所在的位置:网站首页 python3连接oracle 用python连接oracle数据库

用python连接oracle数据库

#用python连接oracle数据库| 来源: 网络整理| 查看: 265

数据库:oracle版本10G 10.2.0.5.0 64位

python版本3.5 64位、32位并存,

操作系统:微软64位window 7

在操作中,出现cx_Oracle.DatabaseError: DPI-1047: 32-bit Oracle Client library cannot be loaded: "The specified module could not be found". See https://oracle.github.io/odpi/doc/installation.html#windows for help

处理方式:

import os #将ORACLE驱动所在目录添加到环境变量中 os.environ['path'] = r'D:\Programs\instantclient-basic-windows.x64-11.2.0.4.0\instantclient_11_2'

原因分析:

python程序启动使用的默认是64版,因为电脑中含用32位其他程序连接ORACLE驱动设置在了ORACLE_HOME环境变量中,所以64位python调用32位oracle驱动时报错。通过python中os模块重新驱动位置,问题解决。

完整测试代码:

import os import cx_Oracle as cx #设置ORACLE驱动位置 os.environ['path'] = r'D:\Programs\instantclient-basic-windows.x64-11.2.0.4.0\instantclient_11_2' def connDB(): try: #地址、端口、SID dsn = cx.makedsn('172.17.2.43', 1521, 'edp') #账号、密码、服务器 db = cx.connect('TEST', '123456', dsn) #创建游标 curs = db.cursor() #组织查询语句 sql = 'SELECT sysdate FROM dual' #执行语句 rr = curs.execute(sql) #获取结果 row = curs.fetchone() #列印结果 print(row[0]) #关闭游标 curs.close() #关闭连线 db.close() except Exception as e: print(e) if __name__ == '__main__': connDB()



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3