2017-03-19 53 views
0

Ubuntuで次のテスト・プログラムを実行して、インスタント・クライアントOCCIライブラリを使用してOracleデータベースに接続しようとしています。Ubuntu ORA-24960:属性OCI_ATTR_USERNAMEが最大許容長255より大きい

#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 

を取得する実行しているとき、私はUbuntuの16.04、GCC 5.4.0を実行していると私は同じ結果を取得するときにエラーがありませんインスタントクライアント11.2および12.2。

これは前に尋ねられています:https://stackoverflow.com/questions/40022118/ora-24960-the-attribute-oci-attr-username-is-greater-than-the-maximumしかし答えはlinuxには当てはまりません(または私はポイントを逃しています)。

ご協力いただければ幸いです。

答えて

0

古いコンパイラに戻すことで問題を解決しました。

$ 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ライブラリを構築するために使用されたものと互換性がありません。あなたは

SET(CMAKE_CXX_COMPILER /usr/bin/g++-4.8)

PSを使用するコンパイラを指定するために、あなたのCMakeLists.txtに次の行を追加します)

1 CMakeの

を使用している場合

0

あなたはインストールする必要があり、G ++ - 4.8

(apt-get install g++-4.8) 
関連する問題