参见英文答案 >
Is it possible to kill a single query in oracle without killing the session? 4个
我们正在使用oracle> 10.0在这里,我们的软件创建了不同类型的报告,用于评估存储的数据.由于数据量很大,这样的报告可能需要几分钟才能创建,而客户希望停止查询.
有没有办法说DMBS应该停止查询?获取状态信息(例如已经读取的行数)也很棒.
最佳答案 根据Tanel Poder
here的博客文章,调用DBMS_RESOURCE_MANAGER.SWITCH_CONSUMER_GROUP_FOR_SESS(sid,serial#,’CANCEL_SQL’); (其中sid和serial#标识要中断的会话)可能有效,但他没有对其进行测试.
如果您的应用程序可以进行OCICancel()或jdbc Statement.cancel调用,那么它也可以正常工作.
在任何一种情况下,我都不确定如何获取已读取的行状态;中断一个假脱机输出的SQL * Plus会话将告诉你它输出了多少行,但是如果它没有开始假脱机输出,它就不会.