Я пытаюсь загрузить CLOB из запроса в Oracle PL / SQL в значение, связанное со строкой.
Код, который делает это:
QString testStr ="*****";
// testStr.truncate(0);
testStr.reserve( 1000000 );
qDebug() << testStr.capacity();
query.bindValue(":result_clob", testStr, QSql::Out);
bool query_executed_ok = query.exec();
qDebug() << "did it execute?" << query_executed_ok;
if (query_executed_ok) {
testStr = query.boundValue(":result_clob").toString();
qDebug() << testStr;
} else {
qDebug() << "string is empty";
}
Первоначально у меня была проблема с небольшим размером строкового буфера, замечено здесь
Но позже обнаружил, что если я увеличил строковый буфер в QString до некоторого (произвольного?) Значения, это, кажется, работает. Я предполагаю, что этот размер буфера в байтах.
Как определить, какой размер создать в этом буфере, чтобы мои возвращаемые значения не исчерпали память с ошибкой "numeric or value error: character string buffer too small"