一、循環文法以及用法
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項