為什麼需要游標

2021-08-31 04:12:36 字數 1327 閱讀 8587

[color=red]加工資:[/color]

一.用三條sql語句:

update emp set sal=sal+1000 where deptno=10;

update emp set sal=sal+2000 where deptno=20;

update emp set sal=sal+3000 where deptno=30;

二.用pl/sql塊,不用顯示游標

begin

update emp set sal=sal+1000 where deptno=10;

update emp set sal=sal+2000 where deptno=20;

update emp set sal=sal+3000 where deptno=30;

dbms_output.put_line('done!!!');

end;

三.用顯示游標

declare

emp_row emp%rowtype;

cursor emp_cur is select * from emp where deptno=10 or deptno=20 or deptno=30 for update;

begin

open emp_cur;

loop

fetch emp_cur into emp_row;

exit when emp_cur%notfound;

if emp_row.deptno=10 then

update emp set sal=sal+1000 where current of emp_cur;

end if;

if emp_row.deptno=20 then

update emp set sal=sal+2000 where current of emp_cur;

end if;

if emp_row.deptno=30 then

update emp set sal=sal+3000 where current of emp_cur;

end if;

end loop;

close emp_cur;

end;

[color=blue]用光標的好處:

1.在快取中修改,一次性提交!!!

2.先查出資料並鎖定,不會出現併發訪問的問題。[/color]

[color=darkred]用光標的壞處:

鎖定的資料要多,併發可能大的時候反而會降低效能

資料頻繁更新,資料同步會有很大消耗![/color]

最終結論:併發可能大的時候不用游標。資料頻繁更新不用游標。

為什麼需要PKI

為什麼需要pki 隨著電子商務的迅速發展,資訊保安已成為焦點問題之一,尤其是網上支付和網路銀行對資訊保安的要求顯得更為突出。為了能在網際網路上開展安全的電子商務活動,公開金鑰基礎設施 pki,public key infrastructure 逐步在國內外得到廣泛應用。我們是否真的需要pki,pki...

為什麼需要prototype

1.new object var newobj new object newobj.name keti newobj.color red newobj.changecolor function color 這種方法看上去很蠢,所以我們找到另一種方法 使用literal直接建立,看上去要優雅得多 2....

為什麼需要bootloader

受微控制器和arm7等小型cpu裝置程式設計思維的影響,開始對嵌入式linux和pc中存在bootloader bios的意義有了疑問 bootloader到底有沒有必要存在呢?答案是 大部分情況下是有必要的。首先,bootloader的作用是在硬體商店後執行的第一段軟體 也叫引導引導程式,是在作業...