如何在此脚本上添加例外

时间:2013-12-14 10:44:59

标签: plsql

问: 显示所有医生的费用 预约低于最低限度。 如果存在,显示一条消息,要求这些医生 每次预约的费用增加30%。 否则,在异常中提供消息 处理程序通知用户此类结果。 允许用户输入最低费用 约定。 例外不起作用?

ACCEPT minchg PROMPT 'Enter the minimum charge per appointment: RM '

DECLARE
ex_min := chgperappt > &minchg EXCEPTION;
v_id    doctor.doc_id%TYPE;
v_name  doctor.doc_name%TYPE;
v_chg   doctor.chgperappt%TYPE;

CURSOR doc_chg IS
SELECT doc_id, doc_name, chgperappt
FROM doctor
WHERE chgperappt < &minchg;

BEGIN

OPEN doc_chg;

LOOP
FETCH doc_chg INTO v_id, v_name, v_chg;
EXIT WHEN doc_chg%NOTFOUND;

DBMS_OUTPUT.PUT_LINE ('Dr. '||v_name||' ('||v_id||') is charging RM '|| v_chg);
DBMS_OUTPUT.PUT_LINE ('Please increase the charge per appointment by 30% --> RM '||v_chg*1.3);

EXCEPTION
    WHEN ex_min  THEN`enter code here` 
    DBMS_OUTPUT.PUT_LINE ('All charge per appointment met the minimum criteria.') ;

END LOOP;


CLOSE doc_chg;

END;
/
你可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

创建用户定义的异常并处理它的基本模板是这样的: (不是完整的代码示例,而是一个代码段)

DECLARE

ex_min EXCEPTION;

BEGIN
    // open cursor, etc.
    IF chgperappt > &minchg THEN
       RAISE ex_min;
    END IF;

    // other code to execute if no exception is raised.

EXCEPTION
    WHEN ex_min  THEN
    // add you code here for exception handling case

END;  

以下是指向tutorial的链接,该链接逐步完成整个过程。希望有所帮助。