【发布时间】:2012-02-28 15:38:31
【问题描述】:
是否可以在 QSqlQuery 中获取 Oracle DB 的原始 DB 输出,例如通过这样的方式:
QSqlQuery sqlQuery;
sqlQuery.prepare("exec dmbs_output.put_line('hello world');");
sqlQuery.exec();
现在我想访问输出(本例中为“hello world”)。
【问题讨论】:
是否可以在 QSqlQuery 中获取 Oracle DB 的原始 DB 输出,例如通过这样的方式:
QSqlQuery sqlQuery;
sqlQuery.prepare("exec dmbs_output.put_line('hello world');");
sqlQuery.exec();
现在我想访问输出(本例中为“hello world”)。
【问题讨论】:
假设您已经通过之前调用DBMS_OUTPUT.ENABLE 配置了DBMS_OUTPUT 写入的缓冲区,您应该能够使用DBMS_OUTPUT.GET_LINE 或GET_LINES 过程从缓冲区中获取数据。
我不是 QT 库方面的专家,但这里有一个 Qt 中的 calling a stored procedure that returns a collection 示例,您似乎需要这样做才能调用 GET_LINES 过程。
【讨论】:
GET_LINES 采用两个参数。第一个是用于获取数据的数组。第二个是一个数字,表示您要获取多少行。我猜你没有传入第二个参数?