Oracle游標例子

2021-05-28 09:27:24 字數 1094 閱讀 8294

/*

功能:將已啟用活動的期間公升級到tbhdqj

版權:王茂健

*/declare v_slnm varchar2(36);

cursor mycursor is select tbfasl_slnm from tbfasl where tbfasl_stat='1';

begin

open mycursor;

fetch mycursor into v_slnm;

while mycursor%found

loop

declare v_sql varchar2(1000);

v_count int:=0;

begin

select count(1) into v_count from tbhdqj where tbhdqj_slnm=''||v_slnm||'';

if(v_count<=0)

then

v_sql :='insert into tbhdqj select tbslqj_slnm,tbslqj_xh,tbslqj_xdqj,tbslqj_zqnm,

(case when tbbzqj_bzlx=''b'' and left(tbbzqj_qj,1)<>''-'' then ''0'' when tbbzqj_bzlx=''q'' then ''1'' else ''1'' end)

from tbslqj2,tbbzqj where tbslqj_slnm='''||v_slnm||'''

and tbbzqj_znm=tbslqj_znm and tbbzqj_zq=tbslqj_zqnm and tbbzqj_qj=tbslqj_xdqj';

execute immediate v_sql;

end if;

fetch mycursor into v_slnm;

end;

end loop;

close mycursor;

end;

在執行的時候老是提示「無效字元」,是因為v_sql最後加了個「;」,我暈  v_sql:='.............................=tbslqj_xdqj;';

oracle游標使用小例子

游標使用 游標其實是乙個放入記憶體臨時表 declare money cms3 simcard.card fee type 0 定義與表字段相同型別 cursor mycursor is 定義游標 select from cms3 simcard where return flag 1 and ms...

oracle的游標和例子

為了處理sql語句,oracle 將在記憶體中分配乙個區域,這就是上下文區。這個區包含了已經處理完的行數 指向被分析語句的指標,整個區是查詢語句返回的資料行集。游標就是指向上下文區控制代碼或指標。兩種游標 一 顯示游標 需要明確定義!顯示游標被用於處理返回多行資料的select 語句,游標名通過cu...

oracle儲存過程呼叫游標例子

1 首先你需要建立乙個包,並定義你返回的游標的型別 儲存過程 create or replace package test pkg is 定義游標 type t cur is ref cursor 儲存過程宣告 procedure test proc p cur in out t cur end t...