Why is no_data_found ORA-01403 an exception in Oracle?

Если оператор SELECT INTO не возвращает хотя бы одну строку, выдается сообщение ORA-01403.

Я знаю, что для любой другой СУБД это нормально для оператора SELECT. Только Oracle обрабатывает SELECT INTO так.

CREATE OR REPLACE PROCEDURE no_data_proc IS
   dummy dual.dummy%TYPE;
BEGIN
  BEGIN 
     SELECT dummy  
       INTO dummy
       FROM dual
      WHERE dummy = 'Y';   
  EXCEPTION 
     WHEN no_data_found THEN
        dbms_output.put_line('Why is this needed?');
  END;
END no_data_proc;

Почему?

По-моему, вам действительно не нужно это исключение. Это слишком накладные расходы. Sometimes it is handy but you have to write a whole BEGIN, EXCEPTION, WHEN, END Block.

Are there any essential reasons I don't see?

18
задан mfgn 25 June 2019 в 13:05
поделиться