sql - 客户端如何取消事件的 Oracle 查询?

标签 sql oracle

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

最佳答案

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

    关于sql - 客户端如何取消事件的 Oracle 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11567127/

    相关文章:

    mysql - 匹配列到列 SQL

    python - Django 中每个客户(通过迭代)的订单值(value)计数和总和

    java - 将 Spring JDBC 用于 Oracle 存储过程 当 SP 抛出 ORA-20118 时我得到一个 ORA-02055

    database - Oracle:LONG 还是 CLOB?

    c# - 无法将 System.Int64 类型的对象转换为 System.Int32 类型

    java - java 中的 MySQL 语句,其中 where 子句使用表名引用列

    oracle - 单独的美分和美元值(value) Oracle

    java - Oracle解析 "' {S}Paris 2"as a string literal then finds {S} which it is treating as a SQL Escape Sequence which it doesn'的文本并识别

    mysql - 列出剩余项目的分区

    java - ORA-00903 : invalid table name on PreparedStatement