select into 多個值 為空


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語句容易拋出異常的問題。

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com