select into 为空和多个值: 1、异常处理法 将 select ... into ............; 的地方改写成: begin select ... into ............; exception when no_data_found then ....... end; 2、还有一种方法是利用游标处理 select ... into ............; 这样的语句。比较麻烦,主要是利用游标可以返回%notfound的特性。 3、巧用聚合函数处理 说明:使用select...into语句时,如果查询返回的数据不是1行,就会报no_data_found或者to_many_rows两种异常。 案例:根据部门号,查询部门名称。 处理方法:巧用聚合函数处理 DECLARE v_dname dept.dname%TYPE; BEGIN SELECT MAX(dept.dname) INTO v_dname FROM dept WHERE deptno=90; IF(v_dname IS NULL)THEN dbms_output.put_line('此部门不存在!'); ELSE dbms_output.put_line(v_dname); END IF; END; 说明:利用聚合函数一定会返回结果的特点, 避免了使用select...into语句容易抛出异常的问题。 |
|
来自: tbinspiration > 《oracle》