for update造成的Oracle鎖表與解鎖

2022-05-06 10:15:11 字數 577 閱讀 1322

我遇到的情況:

當使用select語句查詢表時,後面跟著for update ,

select * from  table  for update
當修改表中資料,但是沒有commit就關掉pl/sql,下次再開啟,執行帶for update的sql語句,就會卡死

一、鎖表

檢視鎖表程序sql語句: 

select * from v$session t1, v$locked_object t2 where t1.sid = t2.session_id;
如果有記錄,可查到如下鎖表記錄

二、解鎖

殺掉鎖表程序: 

記錄下sid和serial# ,分別替換掉下面的1155,39095,即可解除鎖表

for update造成的鎖表以及解鎖

記錄一次生產由於for update導致無法操作表的情況 當使用select語句查詢表時,後面跟著for update,當沒有commit的話就會造成別人無法操作 select from aa for update 針對以上情況,解決方案如下 select from v session t1,v l...

for update的作用和用法

一 for update定義 for update是一種行級鎖,又叫排它鎖,一旦使用者對某個行施加了行級加鎖,則該使用者可以查詢也可以更新被加鎖的資料行,其它使用者只能查詢但不能更新被加鎖的資料行 如果其它使用者想更新該表中的資料行,則也必須對該錶施加行級鎖 即使多個使用者對乙個表均使用了共享更新,...

造成ORA 01843 無效的月份 的一些原因

1 當我們在乙個中文環境的客戶端使用如下sql語句 insert into temptable deliver date values to date 27 jun 2007 15 57 30 dd mon yyyy hh24 mi ss runtime error occurred 1843 or...