오라클 딕셔너리를 통하여 특정 시퀀스의 마지막 숫자 구하기
오라클의 시퀀스를 이용하면 일정하게 증가하며 중복되지 않는 숫자를 생성하여 데이터베이스에 저장할 수 있다.
시퀀스이름.NEXTVAL : 마지막 숫자를 기반으로 다음 숫자를 얻는다
시퀀스이름.CURRVAL : 시퀀스가 최근에 생성했던 마지막 숫자를 얻는다
시퀀스의 마지막 숫자를 참조하기 위해 사용하는 CURRVAL은 아무 때나 사용할 수 있는 것이 아니라 최소한 한번의 NEXTVAL 을 사용한 세션내에서 사용할 수 있고 그 외의 경우에 사용하려고 하면 다음과 같은 오류가 발생한다
Oracle: sequence MySequence.currval is not yet defined in this session
그러므로 현재 세션과 상관 없이 특정 시퀀스의 마지막 값을 참조하려면 아래와 같이 오라클 딕셔너리를 대상으로 시퀀스 정보를 읽어와야 한다
SELECT sequence_name, to_char(min_value) min_value,
to_char(max_value) max_value, increment_by,
cycle_flag, order_flag, cache_size, to_char(Last_number) last_number
FROM user_sequences
WHERE sequence_name='MYSEQUENCE'