问题背景:
由于电脑win10 安装 oracle 19c client 时总是无法安装成功,无法进行安装 相关驱动。
于是安装了 oracle 11g 的客户端驱动, 在代码执行时,执行没有问题, 代码使用ojdbc.jar 驱动来使用。
但是通过sqlserver dblink服务时,总是报ora-28040协议冲突错误。
sqlalchemy.exc.DatabaseError: (cx_Oracle.DatabaseError) ORA-28040: No matching authentication protocol
推测 Oracle Provider for OLE DB 使用的是 应该是11g的驱动,因此想着如何安装 19c驱动问题。
如果电脑上没有这个驱动,安装一个完整的Oracle19c程序是一个有效的方法,但这个64位版本的安装包有2个多G,
于是去官网下载了19c的 odac驱动。
地址
https://www.oracle.com/database/technologies/dotnet-odacdeploy-downloads.html
选择需要的驱动版本,我这边下载为 19.3 版本 , ODAC193Xcopy_x64.zip
安装步骤:
1, 解压到当前文件夹,
进入目录 ,执行 ,
install.bat oledb D:\oracle19_3 odac
则相关驱动已经安装到 D:\oracle19.3 的目录下,
2, 环境变量修改
添加相关 路径到 环境变量 Path中, 即 D:\oracle19.3 ; D:\oracle19.3\bin
3, 重启电脑,
执行之前执行的dblink 服务即可
连接测试:
SELECT * FROM OPENQUERY(WINDDB,’select xxx from 表名’)