ORA-01403: no data found

ORA-01403: no data found

豆子 149 2022-03-09

今天存储过程给我报了个这个错,很常见,也很直白,未找到数据,定位到出错代码,给它一个判空就行了。

select empno into v_empno from emp where empno = i_empno; 
if v_empno is null then
  dbms_output.put_line('员工不存在!');
end if;

还是报未找到数据,因为 select 语句还是用到了 v_empno 这个变量,正确写法应该是这样

select count(empno) into v_count from emp where empno = i_empno; 
if v_count < 1 then
  dbms_output.put_line('员工不存在!');
else
  select empno into v_empno from emp where empno = i_empno;
end if;

其实所有涉及到查询的地方都应该考虑到对空值的判断。


# ORACLE