1. 程式人生 > >select into 多個值 為空

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