我是新來的PL/SQL,我一直在這個問題掙扎WAAY太長,所以我想我會在這裏問:PL/SQL異常不提高
我想達到的目標:
- 我想用pl/sql 塊插入一個新員工到我的'emp'表中。
- 我想從鍵盤輸入數據。
- 然後使用異常檢查數據是否正確。
- 之後,我希望用戶確認它寫'是'或'否'。
什麼不起作用:
異常沒有被提出,即使我輸入無效數據。
因爲它現在要求用戶在詢問數據的同時確認。我希望它輸入查詢後並檢查 正確性
我的代碼:
DECLARE
empno NUMBER;
ename Varchar2(30);
job Varchar2(30);
mgr NUMBER;
hiredate DATE;
sal NUMBER;
comm NUMBER;
deptno NUMBER;
confirm VARCHAR2(3);
negative_number EXCEPTION;
invalid_date EXCEPTION;
BEGIN
INSERT INTO emp
VALUES (&empno, '&ename', '&job', &mgr, '&hiredate', &sal, &comm, &deptno);
IF empno < 0 OR mgr < 0 OR sal < 0 OR comm < 0 OR deptno < 0 THEN
RAISE negative_number;
ELSIF hiredate > SYSDATE THEN
RAISE invalid_date;
END IF;
IF '&confirm' = 'yes' THEN commit;
ELSE rollback;
END IF;
EXCEPTION
WHEN negative_number THEN
dbms_output.put_line('number cannot be negative');
WHEN invalid_date THEN
dbms_output.put_line('cannot be future date');
END;
您swalling在'exception'塊例外。如果你想讓他們被提升到呼叫者,你需要重新提高他們 –
@a_horse_with_no_name swalling是什麼意思?我如何重新提高它們? –
對不起,我的意思是「燕子」。有關引發異常的詳細信息,請參閱手冊:http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/errors.htm#BABFHFBI –