如何使用QOCI(Qt Oracle绑定)执行多行查询?

如何使用QOCI(Qt Oracle绑定)执行多行查询?,oracle,qt,Oracle,Qt,我正在使用QOCI绑定将Qt连接到Oracle 10g数据库。代码非常简单: QSQLQuery sqlQuery = QSQLQuery(database); sqlquery.prepare(querystring); sqlQuery.exec(); 现在,如果querystring只是一行,那么它可以工作: select * from dual 但是如果它包含多行,我会得到一个ORA-911无效字符: select * from dual 我有很多跨多行的查询,所以这是一个相当大的

我正在使用QOCI绑定将Qt连接到Oracle 10g数据库。代码非常简单:

QSQLQuery sqlQuery = QSQLQuery(database);
sqlquery.prepare(querystring);
sqlQuery.exec();
现在,如果querystring只是一行,那么它可以工作:

select * from dual
但是如果它包含多行,我会得到一个ORA-911无效字符:

select *
from dual
我有很多跨多行的查询,所以这是一个相当大的问题。仅仅删除Qt中的换行不是一个选项,因为查询包含行尾注释(“--”)


对如何执行这些多行查询有何建议?

回答我自己的问题:换行符是unicode U+2029段落分隔符,而不是普通换行符(\n)。这触发了ORA-911

querystring.replace(QChar(0x2029), QChar('\n'));

解决了这个问题。

回答我自己的问题:换行符是unicode U+2029段落分隔符,而不是普通的换行符(\n)。这触发了ORA-911

querystring.replace(QChar(0x2029), QChar('\n'));
这就是诀窍