Показать вывод перед исключением - PullRequest
0 голосов
/ 27 марта 2020

У меня есть функция (2 параметра IN), которая возвращает среднюю зарплату, которая была у человека, и если этого человека нет в базе данных (имя и фамилия отсутствуют в БД), я увеличу исключение или если у него нет никакой зарплаты, тогда будет другое исключение.

Дело в том, что у меня есть коллекция с некоторыми идентификаторами и именами, которые будут генерировать разные выходные данные для разных параметров,
половина из них будет генерировать нормальные выходные данные, означающие, что люди находятся в БД и имеют зарплату а другая половина не имеет зарплаты или не существует в БД.

SQL Разработчик покажет пользовательское исключение, даже если я поставлю «правильных» людей перед «неправильными».

Что я могу сделать, чтобы напечатать возвращенное сообщение до возникновения исключения?

1 Ответ

1 голос
/ 27 марта 2020

Это зависит от того, как вы это делаете. Люди обычно делают это в виде (курсора) l oop. Если вы делаете то же самое, то вам нужно включить дополнительный блок begin-exception-end в самом l oop.

Я не знаю ваших таблиц, так что это глупый код, но я должен дать вам представление:

declare
  l_ename emp.ename%type;
  l_sal   emp.sal%type;
begin
  for cur_d in (select deptno, dname from dept) loop
    begin                                         --> begins here
      select e.ename, e.sal 
        into l_ename, l_sal
        from emp e
        where e.deptno = cur_d.deptno;

    exception                                     --> handle errors
      when no_data_found then
        null;
      when too_many_rows then
        null;
    end;                                          --> ends here
  end loop;
end;
...