source

예외 처리 블록에서 pl/sql 예외를 다시 발생시키는 방법은 무엇입니까?

factcode 2023. 6. 18. 16:23
반응형

예외 처리 블록에서 pl/sql 예외를 다시 발생시키는 방법은 무엇입니까?

일부 응용 프로그램에서 사용하는 절차는 다음과 같습니다.

procedure p1
is
begin
  bla bla bla;  
end;

그러나 예외 처리 블록은 없습니다.그래서 애플리케이션은 이 기능에 따라 작성되었습니다.

이제 p1에 오류를 기록해야 합니다.그러나 이 절차를 사용하는 응용 프로그램에는 영향을 주지 않습니다.

이와 같은 것:

procedure p1
is
begin
  bla bla bla;

  exception when others then
    log_error(sqlcode, sqlerrm);
    raise_new_exception (sqlcode, sqlerrm);
end;

raise_application_error의 경우 첫 번째 매개 변수는 [-20000, -20999] 범위에 있어야 합니다.따라서 예외 no_data_found가 발생하면 이 오류를 발생시킬 수 없습니다.

exception_init인 경우 두 번째 매개 변수는 변수가 아니어야 합니다.숫자 리터럴이어야 합니다.

PS: 임시 솔루션으로 즉시 실행

오류가 그대로 유지되면 다음으로 변경합니다.

...
exception when others then
  log_error(sqlcode, sqlerrm);
  raise;
end;
/

이에 대한 설명은 설명서에 나와 있습니다.

언급URL : https://stackoverflow.com/questions/14978431/how-to-re-raise-pl-sql-exception-in-exception-handling-block

반응형