gcc 7.1 を使用して、OCCI で C++ アプリケーションを作成しようとしています (バージョン 11、12、18、すべてが以下で説明する同じ問題につながります)。
以下のアプリケーションは、RHEL7 の下で gcc 4.8.5 を使用して正常にコンパイルおよび実行されますORA-24960: the attribute OCI_ATTR_USERNAME is greater than the maximum allowable length of 255
が、gcc 7.1 でコンパイルするとエラーがスローされます。
This questionは問題に対処しているようですが、私の場合、OCCI呼び出しをgcc 7.1に依存するより大きなアプリケーションに統合する必要があるため、コンパイラのバージョンを下げることはできません。
DBへの接続を単純にチェックするための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 ライブラリがあるかどうかを知っていますか?