Ubuntu ORA-24960: 属性 OCI_ATTR_USERNAME 大于最大允许长度 255
Ubuntu ORA-24960: the attribute OCI_ATTR_USERNAME is greater than the maximum allowable length of 255
我正在尝试 运行 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
我是 运行ning Ubuntu 16.04,gcc 5.4.0,我在即时客户端 11.2 和 12.2 上得到了相同的结果。
之前有人问过这个问题: 但答案不适用于 linux(或者我漏掉了重点)。
如有任何帮助,我们将不胜感激。
通过恢复到较旧的编译器解决了问题。
$ 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 库的编译器和库不兼容。
如果您使用的是 CMake
1) 在您的 CMakeLists.txt 上添加此行以指定要使用的编译器
SET(CMAKE_CXX_COMPILER /usr/bin/g++-4.8)
P.S 你可能需要安装 g++-4.8
(apt-get install g++-4.8)
我正在尝试 运行 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
我是 运行ning Ubuntu 16.04,gcc 5.4.0,我在即时客户端 11.2 和 12.2 上得到了相同的结果。
之前有人问过这个问题: 但答案不适用于 linux(或者我漏掉了重点)。
如有任何帮助,我们将不胜感激。
通过恢复到较旧的编译器解决了问题。
$ 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 库的编译器和库不兼容。
如果您使用的是 CMake
1) 在您的 CMakeLists.txt 上添加此行以指定要使用的编译器
SET(CMAKE_CXX_COMPILER /usr/bin/g++-4.8)
P.S 你可能需要安装 g++-4.8
(apt-get install g++-4.8)