DECLARE v_sal scott.emp.sal%TYPE; --薪水 v_dep scott.emp%rowtype; --全部 v_deptno EXCEPTION; -- BEGIN SELECT * INTO v_dep FROM scott.emp WHERE deptno=10; IF v_sal IS NULL THEN RAISE v_deptno; ELSIF v_sal<=10000 THEN UPDATE scott.emp SET sal=10000 WHERE deptno=10; ELSE dbms_output.put_line('工資不低于10000元'); END IF; EXCEPTION WHEN v_deptno THEN dbms_output.put_line('工資不正確'); WHEN OTHERS THEN dbms_output.put_line('出現其他異常'); END;
2 回答

不負相思意
TA貢獻1777條經驗 獲得超10個贊
出現其他異常的原因可能是scott.em.sal%TYPE定義出問題了(可能沒有正確連接數據庫SCOTT方案).
代碼中還有一個問題是v_sal沒有賦值,正確連接SCOTT方案后,應該出現"工資不正確"的異常;
代碼修改為
Select
sal
into
v_sal
from
scott.emp
where
deptno=10;
即可

慕桂英546537
TA貢獻1848條經驗 獲得超10個贊
注釋1聲名了一個number類型的變量,總長7位,小數點后2位,名是annual_salazy
注釋2中的
select
into
是不是將
a.sal
賦給了變量annual_salazy中
注釋3
把annual_salazy的值作為函數的返回值。
注釋4exception是異常處理。當上面程序出現錯誤或select語句查不到記錄時才執行。
此函數總意思是:通過參數username調用了annual_incomec函數,查找emp表中名字為與參數一致的雇員的薪水(sal)。查到記錄了返回該雇員的薪水;沒查到則返回一個值空值。
- 2 回答
- 0 關注
- 282 瀏覽
添加回答
舉報
0/150
提交
取消