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

时间:2017-03-19 18:37:31

标签: 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);

}

编译时没有错误

g++ main.cpp -L ~/instantclient_12_2 -locci -lclntsh -I ~/instantclient_12_2/sdk/include

但是在跑步时我得到了

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

我正在运行Ubuntu 16.04,gcc 5.4.0,我得到了与即时客户端11.2和12.2相同的结果。

以前曾经问过:https://stackoverflow.com/questions/40022118/ora-24960-the-attribute-oci-attr-username-is-greater-than-the-maximum但答案不适用于linux(或者我错过了这一点)。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:1)

通过恢复旧的编译器来解决问题。

$ sudo apt-get install g++-4.8
$ g++-4.8 main.cpp -L ~/instantclient_12_2 -locci -lclntsh -I ~/instantclient_12_2/sdk/include

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

答案 1 :(得分:1)

如果您使用的是CMake

1)在CMakeLists.txt上添加此行以指定要使用的编译器

SET(CMAKE_CXX_COMPILER /usr/bin/g++-4.8)

P.S您可能需要安装g ++ - 4.8

(apt-get install g++-4.8)