Oracle OCCI和g ++ 7.1的兼容性问题

时间:2018-08-29 08:31:58

标签: c++ oracle g++ occi oracle18c

我正在尝试使用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库?

0 个答案:

没有答案