【发布时间】:2015-05-31 02:27:55
【问题描述】:
我正在使用 SQL 开发人员编写一个过程。
目标是从一张表中获取排水系统的名称,并计算排水系统名称代码在另一张表中出现的次数。
我的程序有效,但是当我输入错误的值时,它不会进入异常部分。例如,当我输入“Mexico River”时,表中不存在此名称。所以,我希望我的异常部分意识到这是一个不正确的输入值。
我的问题是如何修改我的代码,以便它可以检测到不正确的值并转到我的异常部分。
下面是我的代码的 sn-p:
PROCEDURE number_of_rivers --second procedure with 1 parameter
(input_sysName IN TBLDrainage.DRAINAGE_SYS%TYPE)
is
-- Create a cursor
cursor c_river is
select code, drainage_sys
from TBLDRAINAGE
where DRAINAGE_SYS = input_sysName;
v_rivercount Number;
r_variable c_river %rowtype;
Begin
FOR r_variable in c_river
loop
select count (Drainage_sys) into v_rivercount
from TBLRIVER
where DRAINAGE_SYS = r_variable.code;
DBMS_OUTPUT.PUT_LINE (UPPER(input_sysName) || ' has ' || v_rivercount || ' river(s) in the drainage system.');
end loop;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE ('Error: Please enter a valid drainage system name');
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE ('Error in finding system');
END ;
【问题讨论】:
标签: oracle plsql exception-handling