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

时间:2010-09-08 08:57:11

标签: oracle qt

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

QSQLQuery sqlQuery = QSQLQuery(database);
sqlquery.prepare(querystring);
sqlQuery.exec();

现在,如果查询字符串只有一行,则可以正常工作:

select * from dual

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

select *
from dual

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

有关如何执行这些多行查询的任何建议吗?

1 个答案:

答案 0 :(得分:1)

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

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

诀窍。