【文章內(nèi)容簡(jiǎn)介】
用戶聲明單獨(dú)的變量而不是記錄時(shí)可以使用 %type。 ? 當(dāng)用戶聲明表示表、視圖或游標(biāo)的完整行的記錄變量時(shí)可以使用 %rowtype。 ?[示例 ]根據(jù)表 emp中 DEPTNO字段的值 , 為姓名為 SMITH的雇員修改工資;若部門(mén)號(hào)為 10, 則工資加 100;若部門(mén)號(hào)為20, 則工資加 300;否則工資加 400。 declare name %type := 39。SMITH39。 increment %type。 fandept %type。 begin select deptno into fandept from emp where ename = 39。SMITH39。 if fandept = 10 then increment :=200。 elsif fandept = 20 then increment :=300。 else increment :=400。 end if。 update emp set sal = sal +increment where ename = 39。SMITH39。 mit。 end。 執(zhí)行部分 3.分支語(yǔ)句 CASE CASE 變量 WHEN 表達(dá)式 1 THEN 值 1 WHEN 表達(dá)式 2 THEN 值 2 …… WHEN 表達(dá)式 n THEN 值 n ELSE 值 n + 1 END。 執(zhí)行部分 【 例 】 使用 CASE語(yǔ)句根據(jù)給定的整數(shù)輸出對(duì)應(yīng)的星期值: SET ServerOutput ON。 DECLARE varDAY INTEGER := 3。 Result VARCHAR2(20)。 BEGIN Result := CASE varDAY WHEN 1 THEN 39。星期一 39。 WHEN 2 THEN 39。星期二 39。 WHEN 3 THEN 39。星期三 39。 WHEN 4 THEN 39。星期四 39。 WHEN 5 THEN 39。星期五 39。 WHEN 6 THEN 39。星期六 39。 WHEN 7 THEN 39。星期七 39。 ELSE 39。數(shù)據(jù)越界 39。 END。 (Result)。 END。 DECLARE x number。 begin x:=0。 loop x:=x+1。 IF x3 then exit。 end if。 (39。內(nèi) :x=39。||x)。 end loop。 (39。外 :x=39。||x)。 end。 執(zhí)行部分 4.循環(huán)語(yǔ)句 LOOP… EXIT… END LOOP 程序塊 1 IF 條件表達(dá)式 THEN EXIT END IF 程序塊 2 END LOOP。 執(zhí)行部分 【 例 】 LOOP… EXIT… END語(yǔ)句的示例程序: SET ServerOutput ON。 DECLARE v_Num INTEGER := 1。 v_Sum INTEGER := 0。 BEGIN LOOP v_Sum := v_Sum + v_Num。 (v_Num)。 IF v_Num = 3 THEN EXIT。 END IF。 (39。 + 39。)。 v_Num := v_Num + 1。 END LOOP。 (39。 = 39。)。 (v_Sum)。 END。 執(zhí)行部分 5.循環(huán)語(yǔ)句 LOOP… EXIT WHEN… END LOOP 程序塊 1 EXIT WHEN 條件表達(dá)式 程序塊 2 END LOOP。 執(zhí)行部分 【 例 】 用 LOOP… EXIT WHEN… END語(yǔ)句來(lái)實(shí)現(xiàn): SET ServerOutput ON。 DECLARE v_Num INTEGER := 1。 v_Sum INTEGER := 0。 BEGIN LOOP v_Sum := v_Sum + v_Num。 (v_Num)。 EXIT WHEN v_Num = 3。 (39。 + 39。)。