一、循环语法以及用法
1、loop的语法以及用法,如下
loop
---处理程序
end loop;
例子:
declare v_counter binary_integer:=1--定义变量
begin
loop
dbms_output.put_line(v_counter);
v_counter:=v_counter+1;
if v_counter=30 then--如果变量大于30就跳出循环
exit;
end if;
end loop;
end;
2、for- loop 的语法以及用法,语法如下:
For 变量 in 起始值..结束值 loop
---处理程序
end loop;
例子:
declare V_counter binary_integer:=1;
begin
for V_counter in 1..30 loop
insert into tb_studentInfo values('名字'||V_counter,'年龄'||v_counter);
end loop;
commit;
end;
3、Goto 顺序控制
语法:
Goto label;
其中label是用双箭头括起来的标记,下面例子
declare
v_counter binary_integer:=1;
begin
for v_counter in 1..21 loop
insert into tb_studentinfo values(sys_guid(),'易**'||v_counter,v_counter,'男村'||v_counter||'组', '男');
if v_counter=10 then
goto Insert_Gril;
exit;
end if;
end loop;
<<Insert_Gril>>---此处为标记
for v_counter in 0..30 loop
insert into tb_studentinfo values(sys_guid(),'某女士'||v_counter,v_counter,'女村'||v_counter||'组', '女');
end loop;
commit;
end;
二、预定义异常
1、DUP_VAL_INDEX :违反唯一性
2、LOGIN_DENIED:登录失败、用户名和密码错误;
3、NO_DATA_FOUND:没有发现数据存在;
4、TOO_MANY_ROWS:数据行太多,即一个Select....Insert 语句匹配的多个数据行;
5、ZERO_DIVIDE:除数为零;
6、VALUE_ERROR:算法或转换错误;
7、CASE_NOT_FOUND:在case语句中没有发现匹配When项