C++ 如何确定PL/SQL绑定值的QString保留大小
我试图将查询中的CLOB加载到Oracle PL/SQL的字符串绑定值中 执行此操作的代码是:C++ 如何确定PL/SQL绑定值的QString保留大小,c++,string,oracle,qt,plsql,C++,String,Oracle,Qt,Plsql,我试图将查询中的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.ex
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 testStr=“*******”;
//testStr.truncate(0);
试验储备(1000000);
qDebug()您可以展示一个正在使用的select查询的示例吗?实际上,这种Culb数据能得到多大的数据?错误来自Oracle而不是C++代码。QString对象的保留容量不太可能与它有任何关系。这是一个过程调用-在它的末尾,我将CLOB字符串分配给绑定的返回值:result\u CLOB:=l\u CLOB代码>至于长度,它可能根据用户可以请求的数据量而有所不同。我可以在过程中设置一个上限,以帮助减少缓冲区耗尽的机会。至于来自Oracle的错误。我也这么认为。在我之前的帖子(上面的链接)中,我提到了错误<代码> ORA-06502,但同样,当我改变了C++代码,而不是PL/SQL,字符串预备大小时,它才开始工作并打印字符串。