oracle select into 查询没有记录的解决办法
select into 语句可以将数据库的某些值赋值给程序的变量,但很多时候也会遇到查询出来没有记录的情况,这时程序会出错。1.可以使用异常捕获的方式a number(10);b number(10);c varchar(20);beginselect age, sex, name into a, b, c from myemp t where t.empno = pno;-- return '返
·
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;
-- return '返回值'
EXCEPTION
WHEN NO_DATA_FOUND THEN
dbms_output.put_line('捕获到异常');
-- return '异常返回值';
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
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)