db テーブルに、タイプとサイズが VARCHAR2<50> の列があります。CPP コードで getBlob() メソッドを使用して値を取得しています。次のように例外に直面しています。
例外:
ORA-01460: 実装されていない、または不当な変換が要求されました
@ line Blob blob = rset->getBlob(1);
コード:
if(rset->next())
{
Blob blob = rset->getBlob(1);
if(blob.isNull())
cout << "Null Blob" << endl;
else
{
blob.open (OCCI_LOB_READONLY);
int blobLength=blob.length();
Stream *instream = blob.getStream (1,0);
char *buffer = new char[blobLength];
memset (buffer, NULL, blobLength);
instream->readBuffer (buffer, blobLength);
for (int i = 0; i < size; ++i)
cout << (int) buffer[i];
cout << endl;
delete (buffer);
blob.closeStream (instream);
}
blob.close ();
}
あなたのコメントを教えてください。ありがとう。
PS: フォーラムをチェックしたところ、同じ例外の投稿がありましたが、私が直面しているものに関連するものは見つかりませんでした。