OCCI 异常:连接描述符太长(但不是真的)

OCCI exception: connect descriptor is too long (but not really)

本文关键字:真的 异常 连接 描述 OCCI      更新时间:2023-10-16

我正在使用OCCI通过C++使用Oracle数据库,我正在尝试创建这样的连接:

#include <occi.h>
using namespace oracle::occi;
using namespace std;
int main() {
Environment *env = Environment::createEnvironment(Environment::DEFAULT);    
Connection *con = env->createConnection(login, password, connection_string);
}

如果我使用connection_string:

string connection_string1 = "(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 
" + host_ + ")(PORT = " + port_ + "))(CONNECT_DATA = (SID = " + sid_ + ")))"; 

它是使用一些变量创建的,我得到了这个异常:

ORA-12163:TNS:连接描述符太长

如果我使用相同的字符串,但喜欢:

string connection_string2 = "(DESCRIPTION = (ADDRESS = (PROTOCOL = 'TCP')(HOST 
= 'real.host.I.need.cz')(PORT = '1510'))(CONNECT_DATA = (SID = 'word')))";

使用实际值,我得到了其他例外:

ORA-12560:TNS:协议适配器错误

(connection_string1 == connection_string2返回 TRUE)

如果我使用""(空字符串)或"f"(任何内容),我得到

ORA-12163:TNS:连接描述符太长

.这不可能是真的。

我怎样才能知道问题出在哪里?

我们连接到版本 11 的服务器,但使用的是即时客户端版本 12.2.0.1.0。

使用即时客户端版本 11.2.0.4.0 解决了这个问题。