Oracle-cursor動態游標
語法
type 動態游標類型名 is ref cursor; ---- 聲明一個動態游標類型,紫色填寫一樣內容 游標名 動態游標類型; ---- 聲明一個動態游標類型的變量,這個變量就是動態游標類型的,也就是動態游標 open 游標名 for SQL語句; ---- 打開游標,並且把SQL語句和游標關聯起來 close 游標名;
--創建過程
create or replace procedure proc_select
is
sql_select varchar(400);
sql_row tablesp%rowtype;
type cur_select is ref cursor; --聲明一個動態游標類型,名字叫cur_select,因為游標不是類型所以要聲明一個動態游標類型
curs cur_select; --聲明一個動態游標變量,名字叫curs
begin
sql_select:='select * from tablesp'; -- 需要執行的SQL語句
open curs for sql_select; -- 打開游標,並且SQL執行結果存放到curs中
loop
fetch curs into sql_row; -- 把curs中的一條記錄賦值為 sql_row
dbms_output.put_line(sql_row.tid||'-'||sql_row.tname||'-'||sql_row.tage);
exit when curs%notfound; -- 退出循環
end loop;
close curs;
end;