1、匿名塊的格式基本就如下面所示
[declare]
/*變量定義區,也可做初使化等*/
begin
/*開始區,執行順序SQL語句*/
[exception]
/*異常處理區,可進行異常處理,異常的拋出使用raise關鍵字*/
end;
其中方框里面的為可選項,不作為必須。
2、
fetch
1)首先要定義
cursor,如
cursor id_cur is select id from components
2)然后打開
cursor:open id_cur
3)第三是使用
fetch從
cursor并保存到變理中
4)第四關閉
cursor
那就把上面說到的功能實現,代碼如下:
- declare
- num_id integer;/*定義變量*/
- sql_str varchar(1000);
- cursor id_cur is select id from components;/*用光標取ID*/
- begin
- open id_cur;/*打開光標執行*/
- loop/*一直執行下去*/
- fetch id_cur into num_id;/*根據光標,取出ID號到變量中*/
- exit when id_cur%notfound;/*沒有記錄時就退出*/
- if mod(num_id,5)=0 then/*如果記錄ID為5的倍數,就執行下面的插入*/
- /*下面生成一條SQL語句*/
- sql_str:='insert into components2 select * from components where id='|| num_id;
- /*立即執行生成的SQL語句*/
- execute immediate sql_str;
- end if;/*記住:條件的結束后都要加結束束‘;’*/
- end loop;
- close id_cur;/*關閉光標*/
- end;
- /