oracle select into 查询没有记录的解决办法

select into 语句可以将数据库的某些值赋值给程序的变量,但很多时候也会遇到查询出来没有记录的情况,这时程序会出错。

1.可以使用异常捕获的方式

a number(10);
b number(10);
c varchar(20);
begin
  select age, sex, name into a, b, c from myemp t where t.empno = pno;
EXCEPTION
  WHEN NO_DATA_FOUND THEN
  dbms_output.put_line('捕获到异常'); 
END;

当一条数据都没有查出来的时候会捕获这个异常.

2.使用聚合函数

常规写法:

select age into a from emp where empno = 7788

如果查询不到数据时,into语句就会报异常,这时可以使用聚合函数制造一条为0的数据行,并赋值给变量。

聚合函数写法:

select nvl(max(age),0) into a from emp where empno = 7788
发布了163 篇原创文章 · 获赞 46 · 访问量 17万+

猜你喜欢

转载自blog.csdn.net/liangmengbk/article/details/101062159