任何非SELECT查询都不在Oracle中运行

时间:2019-06-27 18:28:29

标签: sql oracle oracle11g

因此,我可以成功运行任何SELECT语句,但是执行任何UPDATE语句只是挂起,直到它们最终超时为止。尝试执行任何存储过程时也会发生这种情况。其他连接到数据库的用户可以运行任何东西而不会遇到此问题。

每个用户是否有可以转储的缓存或类似的内容?我通常会厌倦等待并取消操作,所以我不知道这是否导致了问题。

仅供参考,事情很简单:

UPDATE SOME_TABLE
SET SOME_COLUMN = 'TEST';

EXECUTE SOME_PROCEDURE(1234);

但这可行:

SELECT * FROM SOME_TABLE; -- various WHERE clauses don't cause any problems.

1 个答案:

答案 0 :(得分:2)

根据我的经验,这种情况最经常发生,因为表上还有另一个未提交的操作。例如:用户1成功发布了一个更新,但没有提交或回滚它。用户2(甚至用户1的另一个会话)发出另一个更新,该更新只是挂起,直到其他未决的更新被提交或回滚。您说“其他用户”没有相同的问题,这使我想知道他们是否要提交更改。如果是这样,那么他们是否要更新同一张表或另一张表。