oracle 動態表名的游標寫法

2021-05-02 09:08:55 字數 669 閱讀 8034

在開發中,經常會碰到動態表名的游標的寫法,正好在工作中碰到乙個,如下所示:

declare

stralltable varchar2(100);

type cur_typ is ref cursor;

c             cur_typ;

c_id        number(18);

c_code    varchar2(100);

begin

for c_table in (select t.table_name

from user_tab_columns t

where t.table_name like upper('pne_%')

and t.column_name = 'code') loop

stralltable := 'select id,code from ' ||

c_table.table_name;

open c for stralltable;

loop

fetch c

into c_id, c_code;

exit when c%notfound;

-- 此處可以寫自已的處理**

end loop;

close c;

end loop; 

end;

動態游標的寫法

在變數宣告部分定義的游標是靜態的,不能在程式執行過程中修改。雖然可以通過引數傳遞來取得不同的資料,但還是有很大的侷限性。通過採用動態游標,可以在程式執行階段隨時生成乙個查詢語句作為游標。要使用動態游標需要先定義乙個游標型別,然後宣告乙個游標變數,游標對應的查詢語句可以在程式的執行過程中動態地說明。定...

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...