Ubuntu ORA-24960: 属性 OCI_ATTR_USERNAME 大于最大允许长度 255

the*_*ter 5 oracle ubuntu occi

我正在尝试在 Ubuntu 上运行以下测试程序,以使用即时客户端 OCCI 库连接到 Oracle 数据库。

#include <iostream>
#include <occi.h>

using namespace oracle::occi;
int main() {

    Environment *env = Environment::createEnvironment(Environment::DEFAULT);
    Connection *conn = env->createConnection( "user", "1234" ); 
    env->terminateConnection(conn);
    Environment::terminateEnvironment(env);

}
Run Code Online (Sandbox Code Playgroud)

编译的时候没有错误

g++ main.cpp -L ~/instantclient_12_2 -locci -lclntsh -I ~/instantclient_12_2/sdk/include
Run Code Online (Sandbox Code Playgroud)

但是跑步时我得到

terminate called after throwing an instance of 'oracle::occi::SQLException'
  what():  ORA-24960: the attribute  OCI_ATTR_USERNAME is greater than the maximum allowable length of 255
Aborted
Run Code Online (Sandbox Code Playgroud)

我正在运行 Ubuntu 16.04、gcc 5.4.0,并且使用即时客户端 11.2 和 12.2 得到相同的结果。

之前已被问过:/sf/ask/2801548291/,但答案不适用于linux(或者我错过了重点)。

任何帮助,将不胜感激。

the*_*ter 2

通过恢复到较旧的编译器解决了该问题。

$ sudo apt-get install g++-4.8
$ g++-4.8 main.cpp -L ~/instantclient_12_2 -locci -lclntsh -I ~/instantclient_12_2/sdk/include
Run Code Online (Sandbox Code Playgroud)

也许最新的编译器和库与用于构建 OCCI 库的编译器和库不兼容。