【问题标题】:cx_Oracle Statement getting Stuckcx_Oracle 语句卡住了
【发布时间】:2016-02-06 11:28:31
【问题描述】:

在使用 cx_Oracle(Python) 时,代码在执行以下语句时进入等待:

some_connection.execute(some_sql)

可能是什么原因?

【问题讨论】:

  • 很难说没有看到这个“some_sql””。很可能原因是“some_sql中的一些错误”。

标签: python sql oracle cx-oracle


【解决方案1】:

如果没有看到有问题的实际 SQL,就很难确定。一些可能的答案包括:

1) SQL 实际上需要很长时间才能执行(你只需要耐心等待)

2) SQL 被另一个事务阻塞(需要先提交或回滚该事务)

您可以通过检查 dba_locks 的内容来找出答案,特别是查看 blocking_others 列。您也可以尝试在 SQL*Plus 中发出相同的 SQL,看看它是否表现出相同的行为。

【讨论】:

  • 这是因为之前的事务没有提交。
  • 有没有办法告诉 cx_Oracle 不要永远等待?
  • 您可以使用 Oracle Client 18.1 和 cx_Oracle 7 提供的 callTimeout 功能。
  • callTimeout 功能似乎有帮助,谢谢。它还有助于使用 sqlnet.ora 设置。
猜你喜欢
  • 2022-01-11
  • 1970-01-01
  • 1970-01-01
  • 2018-05-06
  • 2012-06-23
  • 2021-10-08
  • 2016-11-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多