ORA-00060在一个表上运行多个DELETE查询

时间:2015-07-03 08:41:44

标签: oracle database-deadlocks

我有一个多用户应用程序,它允许许多用户对数据库表执行DML操作。在特定情况下,2个用户尝试通过不同的事务在一个表上执行DELETE。

问题是,事务1是一个长时间运行的事务,并且长时间在表上获取行锁定。所以事务2(尝试修改相同的行)错误输出ORA-00060。 另外,我不能对事务1上的DELETE查询执行Execute Immediate,起诉一些数据完整性问题。

如何修改DELETE查询以模仿SQL Server中NOLOCK的行为?

1 个答案:

答案 0 :(得分:0)

您可能有一个具有未编入索引的外键的子表(或孙表)。见How to find out the cause of an Oracle deadlock

否则,跟踪文件可能会告诉您涉及哪些行,请参阅: How can I identify the rows involved in an Oracle deadlock?