大坑 c++使用occi连oracle报错ORA-12154: TNS:could not resolve the connect identifier specified

根据网上大多数教程,一直报错ORA-12154: TNS:could not resolve the connect identifier specified,花了几个小时,终于搞定,记录备忘。

 

利用occi连oracle分别需要用到以下三个素材

下载链接分别在:

https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html

https://www.oracle.com/technetwork/cn/database/occidownloads-083553-zhs.html

我使用vc2019,客户端环境是2008r2,oracle服务器环境是linux

使用c++ x64利用occi连oracle

 

为了减轻移植程序的部署难度,下面方法:

不需要sqlnet.ora;tnsnames.ora!!!!

不需要配置windows系统变量!!!!

 

搭建环境:

项目配置里,头文件目录添加:../3rdparty/Oracle\OCCI\instantclient-sdk-windows.x64-11.2.0.4.0\instantclient_11_2\sdk\include

代码头部:

#pragma comment(lib,"../3rdparty/Oracle/OCCI/occi_vc10_11_2_0_4_win64/oraocci11.lib")

#include <occi.h>
using namespace std;
using namespace oracle::occi;(不加这个也行,相关类前加上oracle::occi::类名)

部署:

把basic里的dll拷贝到你程序exe所在目录

把occi_vc10_11_2_0_4_win64目录里的2个dll拷贝到你程序exe所在目录,重名的覆盖(这是关键!不知为何,basic里的dll用不了!!!)

 

 

 

===============

再次更新本文,根据官方说明,

“Oracle Call Interface 19, 18 and 12.2 can connect to Oracle Database 11.2 or later.”

所以,可以用高版本接口,连11.2以上的数据库

所以,我放弃了11.2.0.4的接口,直接用18.5.0.0.0的basic和sdk(不用19.6.0.0.0的接口是因为它不支持win7,我不能保证我的用户都是win10,起码我自己不愿意用经常蓝屏的win10)。那么就简单了,lib和include用sdk里的,dll用basic里的。(里面有个vc14的文件夹,其中的文件在外部同样存在,但字节数不同,我不明白为什么,有谁知道请留言告诉我,谢谢)

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FBI_willeach

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值