1
오라클에서 sequence.nextval
이 MAXVALUE에 도달하면 throw 된 특정 예외를 catch하고 싶습니까?예외 sequence.nextval maxvalue? (oracle sql)
예외적 인 경우를 사용하고 싶지 않습니다. 내 로거에 대한 특정 예외를 잡아 내고 싶습니다.
오라클에서 sequence.nextval
이 MAXVALUE에 도달하면 throw 된 특정 예외를 catch하고 싶습니까?예외 sequence.nextval maxvalue? (oracle sql)
예외적 인 경우를 사용하고 싶지 않습니다. 내 로거에 대한 특정 예외를 잡아 내고 싶습니다.
사용자 정의 예외를 선언하고 을 사용하여 예외 코드 -8004
(시퀀스가 최대 값을 초과 할 때 발생하는 예외 코드)을 연결 한 다음 해당 예외를 catch 할 수 있습니다. 다음은 그 예입니다 :
SQL> declare
2 l_ex_max_val exception;
3 pragma exception_init(l_ex_max_val, -8004);
4 l_val number;
5 begin
6 l_val := gen_val.nextval; -- This kind of assignment is allowed
7 exception -- in 11g and further versions. In earlier versions
8 when l_ex_max_val -- you would use select statement
9 then dbms_output.put_line('ERROR! sequence gen_val exceeds its max value');
10 end;
11/
ERROR! sequence gen_val exceeds its max value
PL/SQL procedure successfully completed
SQL>
고맙습니다 - 이것은 plsql에서도 작동합니까? – user2663377
@ user2663377 위의 예는 PL/SQL (익명 PL/SQL 블록)입니다. –