我正在尝试使用gcc 7.1使用OCCI(版本11,12,18,全部导致下面解释的同一问题)创建C ++应用程序。
下面的应用程序可以在RHEL7以下的gcc 4.8.5编译并正常运行,但是在使用gcc 7.1编译时会抛出错误ORA-24960: the attribute OCI_ATTR_USERNAME is greater than the maximum allowable length of 255
。
This question似乎可以解决此问题,但是在我的情况下,降级到较低的编译器版本是不可行的,因为我需要将OCCI调用集成到依赖gcc 7.1的更大的应用程序中。
这里是一个MCVE,用于简单地检查与数据库的连接:
#include <string>
#include <occi.h>
using namespace oracle::occi;
using namespace std;
int main()
{
const string url = "//server:1234/ID";
const string username = "user";
const string password = "password";
Environment* env = Environment::createEnvironment();
try {
Connection* conn = env->createConnection(username, password, url);
cout << "Connection to " << url << " successfully established." << endl;
env->terminateConnection(conn);
cout << "Connection closed." << endl;
}
catch (const SQLException& ex) {
cerr << "Error: " << ex.what() << endl;
}
Environment::terminateEnvironment (env);
}
有没有人对这个问题有任何经验,并且知道我可以链接一个替代方法或静态OCCI库?