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