例子程式**塊如下:
create or replace procedure proc_qzcsqktj is
-- 定義游標型別
type cursor_type is ref cursor;
c_qzcs cursor_type;
-- 定義用於存放游標結果的記錄型別
type record_type is record(
ywlx za_zfba_jcxx_aj_qzcsqk.ywlx%type,
qzcslb za_zfba_jcxx_aj_qzcsqk.qzcslb%type);
r_qzcs record_type;
-- 定義並初始化游標
cursor cur_user_table is
select a.* from test_a;
rec_user_table cur_user_table%rowtype;
begin
--迴圈訪問已經初始化的游標
for rec_user_table in cur_user_table loop
...-- 根據rec_user_table記錄中的值查詢業務表,賦值到c_qzcs游標中,並開啟該游標.
open c_qzcs for
select b.*
from test_b
where col_a = rec_user_table.col_a ;
-- 迴圈從游標裡裡取記錄,無資料可取即退出
loop
fetch c_qzcs into r_qzcs;
exit when c_qzcs%notfound;
...end loop;
close c_qzcs;--關閉游標
...end loop;
end proc_qzcsqktj;
/*注意:
在for迴圈中呼叫游標時,游標預設自動開啟,提取和關閉.
*/
工作中用到,記錄下來留做備用. 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...
oracle 動態游標
今天寫了個動態游標 使用傳入引數 關於游標分類以及用法 思路就是先拼好sql 然後開動態游標 oralce10g也支援正規表示式 呵呵 剛剛好可以實現動態傳入引數 procedure tj pda testdata v indicator in varchar is type rc is ref c...
Oracle動態游標入門
說明 下面的儲存過程在oracle817下全部通過測試,編譯和執行均是正確的 一 最簡單的乙個動態游標 create or replace procedure test cur isstrsql1 varchar 1000 type tcur is ref cursor cur tcur ac wh...