ref動態游標被用於處理多行的查詢結果集
在同乙個plsql塊當中,ref動態游標不同於特定的查詢繫結
開啟游標時才繫結,所以通常用於查詢語句需要執行時動態確定的情況
使用動態游標的步驟:
先定義乙個ref動態游標型別
示例:
動態游標分為強型別和弱型別
弱型別示例
動態游標示例
生成員工或者部門資訊
declare
type refcur_t is ref cursor; --宣告游標型別
refcur refcur_t; --宣告游標遍歷
p_id number; --pid變數
p_name varchar2(50);
sel varchar2(1):=upper(substr('%tab',1,1)); --擷取之後再轉成大寫
begin
if sel ='e' then --如果是e是員工資訊
open refcur for select id,name from employees; --開啟游標
dbms_output.put_line('員工資訊');
elsif sel='d' then --如果是d是部門資訊
open refcur for select deptno,dname from dept;
dbms_output.put_line('部門資訊');
else --都不是就重新輸入
dbms_output.put_line('重新輸入');
return ;
end if;
fetch refcur into p_id,p_name; --獲取游標的資料
while refcur%found loop
dbms_output.put_line('#'||p_id||'p_name');
fetch refcur into p_id,p_name;
end loop;
close refcur;
end;
游標,動態,for迴圈
小測 輸出各部門員工的部門名稱和工號 姓名,工資。要求 各部門工資最高的放在前面 在 dallas 地方的部門名稱後加上 三種實現方式 1 通過顯式游標 2 通過for迴圈 3 通過動態sql方式 顯示游標 declare type emp dept is record name dept.dnam...
oracle動態游標
declare v col1 varchar2 254 v col2 varchar2 254 v sql varchar2 1024 type my cursor is ref cursor v cur my cursor begin v sql select 1,2 from dual wher...
游標,動態,for迴圈
小測 輸出各部門員工的部門名稱和工號 姓名,工資。要求 各部門工資最高的放在前面 在 dallas 地方的部門名稱後加上 三種實現方式 1 通過顯式游標 2 通過for迴圈 3 通過動態sql方式 顯示游標 declare type emp dept is record name dept.dnam...