一个客户端如何取消正在运行的Oracle查询?

4

我有一个正在进行中的 Oracle 操作,花费时间太长。如何在程序上取消操作而不终止会话?

1个回答

4
OCI库提供了这一功能。典型的例子是客户端在长时间运行操作期间按下control-C来获取程序的控制权,通过信号处理器取消长时间运行的操作。
在内部,客户端会通过TCP连接发送一个紧急消息,服务器端将通过SIGURG处理程序处理终止。客户端操作将接收到这个状态。
ORA-01013 ("user requested cancel of current operation")
  • C/C++:

OCIBreak()

http://docs.oracle.com/cd/B10500_01/appdev.920/a96584/oci16m96.htm

http://docs.oracle.com/cd/A97630_01/appdev.920/a96584/oci02bas.htm (在“取消调用”一节中)

  • Python (cx_Oracle):

conn.cancel()

http://cx-oracle.sourceforge.net/html/connection.html


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接