Oracle中用For Loop 替代Cursor
我們在Oracle存儲過程中需要遍歷一張表,應該怎樣做。我想大多少的人第一個念頭就是Cursor。
比如:
create or replace procedure StudyCursor(
resulst out integer
) is
v_tablename varchar(30);
v_tabletype varchar(11);
cursor mycursor is select * from cat;
begin
open mycursor;
loop
fetch mycursor into v_tablename,v_tabletype;
null; --you can use tablename and v_tabletype
end loop;
close mycursor;
end StudyCursor;
最近在看代碼是,發現其實我們還有一個更方便的方法就是使用for in loop … end loop
create or replace procedure StudyFor(
resulst out integer
) is
begin
for emm in(select * from cat) loop
null; --you can use emm.table_name and emm.table_type
end loop;
return ;
end StudyFor;
是不是更方便,我要使用的查詢結果,只需使用emm.table_name和emm.table_type即可。
查找了Oracle的官方文檔,似乎沒有看見for loop的此種用法。確實很奇妙,只是不知道oracle內部具體的實現方法。
原文出自:http://www.cnblogs.com/jjiac/archive/2007/01/24/628831.html
轉載于:https://www.cnblogs.com/xiaolg/archive/2010/06/28/1767003.html
總結
以上是生活随笔為你收集整理的Oracle中用For Loop 替代Cursor的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 盆腔有积液会导致输卵管堵塞吗?
- 下一篇: asp.net mvc 2 Displa