用forloop替代cursor--oracle的使用技巧
在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內部具體的實現方法。
在ORACLE儲存過程中建立臨時表
create procedure pro asstr varchar2 100 begin str create global temporary table tablename col1 varchar2 10 col2 number on mit preserve rows execute im...
oracle 在儲存過程中定義動態sql
表結構 create table item prop pid integer,name varchar2 20 is key prop integer,is sale prop integer,is color prop integer,parent pid integer,parent vid v...
在ORACLE儲存過程中建立臨時表
create procedure pro asstr varchar2 100 begin str create global temporary table tablename col1 varchar2 10 col2 number on commit preserve rows execute...