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;
- /