我正在尝试使用 gcc 7.1 使用 OCCI(版本 11、12、18,都导致下面解释的相同问题)创建一个 C++ 应用程序。
下面的应用程序在 RHEL7 下使用 gcc 4.8.5 编译并运行良好,但ORA-24960: the attribute OCI_ATTR_USERNAME is greater than the maximum allowable length of 255
在使用 gcc 7.1 编译时抛出错误。
这个问题似乎解决了这个问题,但在我的情况下,降级到较低的编译器版本不是选择,因为我需要将 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 库?