我的数据库表中有一个类型和大小为 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:我检查了论坛并得到了同样例外的帖子,但找不到与我所面对的相关的内容。