4

我有一个活动的 Oracle 操作需要很长时间。如何在不终止会话的情况下以编程方式取消操作?

4

1 回答 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

于 2012-07-19T18:32:09.753 回答