我創建了一個plsql程序來從替代變量中獲取employee_id。每當我嘗試輸入一個字母,我都會收到ORA-06550的錯誤消息作爲錯誤號。我把它放在異常部分,但它似乎沒有被提出。PL/SQL - 爲什麼ORA-06550不能陷入異常?
這裏的錯誤消息,當我輸入的替代變量「KK」 ......
Error report:
ORA-06550: line 13, column 9:
PLS-00201: identifier 'KK' must be declared
ORA-06550: line 13, column 1:
PL/SQL: Statement ignored
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
,這裏是我的PL/SQL塊
set serveroutput on
set verify off
declare
cursor cur(mid employees.employee_id%type) is
select e.last_name employee,
m.last_name manager
from employees e
join employees m
on m.employee_id = e.manager_id
where m.employee_id=mid;
rec cur%rowtype;
m_id employees.employee_id%type;
ex exception;
pragma exception_init(ex, -06550);
begin
m_id := &id;
open cur(m_id);
fetch cur into rec;
dbms_output.put_line('here '||rec.employee || ' ' || rec.manager);
close cur;
exception
when ex then dbms_output.put_line('employee_id was not a valid number');
end;
/
做的人都知道,爲什麼我不能陷阱例外?
是的,我可以做到這一點,但我需要從用戶輸入一個數字,如果用戶輸入一個字母,這是唯一一次例外將陷入困境,我從中得到一些問題。 :) – Katherine
我更新了我的anwser - 考慮這個.. ;-) –