問題:1.要求通過儲存過程實現程式執行的併發控制。
2.儲存過程乙個輸入引數乙個輸出引數,輸入要執行的程式名稱,判斷該程式是否在執行輸出引數返回程式狀態
3.解決問題:當兩個使用者同時訪問同一程式時,都檢索到該程式未執行,同時執行,併發失效。
create or replace procedure (prog_name_in varchar2(50),run_flag_out out varchar2(50))
isv_run_flag varchar2(10);
begin
select run_flag into v_run_flag from tb_prog_stauts
where prog_name = prog_name_in for update ;
if(v_run_flag = 'y') then
run_flag_out := '程式執行中';
end if;
if(v_run_flag ='n') then
fun_flag_out := '程式可以執行';
end if;
exception
when others then
rollback;
commit;
end;
mysql 儲存過程 行鎖 mysql行鎖和表鎖
在呼叫儲存過程中,就會涉及到表鎖,行鎖這一概念 所謂區別 有索引的時候就是行鎖,沒有索引的時候就是表索。innodb 的行鎖是在有索引的情況下,沒有索引的表是鎖定全表的.表鎖演示 無索引 session1 mysql set autocommit 0 mysql select from innodb...
ORACLE儲存過程被鎖
1.檢視是哪乙個儲存過程被鎖住 查v db object cache檢視 select from v db object cache where owner 過程的所屬使用者 and locks 0 2.檢視是哪乙個sid,通過sid可以知道是哪乙個session 查v access檢視 selec...
Oracle儲存過程中使用行鎖的示例
以前對oracle鎖只概念上的一點點了解,沒有認真考慮或使用過。直到在開發過程中遇到了由於沒有使用鎖而導致的併發問題,才對此重視起來。舉個例子來說明我遇到的問題。乙個入庫單錶 t rkd 每一條記錄對應著一條入庫資訊,還有個一對多的關聯表來記錄此入庫單的明細資訊。我使用t rkd表中乙個欄位來標識這...