首页 > 解决方案 > 编写一个 PLSQL 块,如果部门表中没有 emp 表中的 dept_id 可用记录,该块将引发异常

问题描述

架构详细信息:

Table   columns
dept    dept_head, dept_id,dept_name  ::::::
emp     dept_id, emp_id,emp_lname, emp_status, loc_id, ...

输出格式:

Dept ID :**** is not a valid ID

我已经在 HackerRank 中尝试过使用此代码,得到所需的输出仍然无法通过测试用例。它说答案不正确,测试用例 0 失败。谁能建议我在哪里犯错并帮助我通过测试用例。

set serveroutput on;
declare
DEPTID emp.DEPT_ID%type:=123;
DEPTNAME dept.DEPT_NAME%type;
DEPTHEAD dept.DEPT_HEAD%type;
begin
select DEPT_ID,DEPT_NAME,DEPT_HEAD into DEPTID,DEPTNAME,DEPTHEAD from dept where DEPT_ID=DEPTID;
DBMS_OUTPUT.PUT_LINE (DEPTID || DEPTNAME || DEPTHEAD);
Exception
    WHEN NO_DATA_FOUND THEN
      dbms_output.put_line('Dept ID :'||DEPTID||' is not a valid ID');  
END;
/
exit;

标签: plsql

解决方案


答案是——

set serveroutput on;
declare
DEPTID emp.DEPT_ID%type:=60;
DEPTNAME dept.DEPT_NAME%type;
DEPTHEAD dept.DEPT_HEAD%type;
begin
select DEPT_ID,DEPT_NAME,DEPT_HEAD into DEPTID,DEPTNAME,DEPTHEAD from dept where DEPT_ID=DEPTID;
DBMS_OUTPUT.PUT_LINE (DEPTID || DEPTNAME || DEPTHEAD);
Exception
    WHEN NO_DATA_FOUND THEN
      dbms_output.put_line('Dept ID :'||DEPTID||' is not a valid ID');  
END;
/
exit;

推荐阅读