DB/SQL

[세무민의 코딩일기] : 오라클 시퀀스 조회 번호 확인하기

세기루민 2022. 2. 23. 20:30
728x90

안녕하세요 세기무민입니다. 

이번에 다룰 포스팅은 USER_SEQUENCES입니다. 

 


우선 Oracle 문서에서 확인한 정의는 위와 같습니다. 

즉 USER_SEQUENCES는 현재의 사용자가 소유한 시퀀스를 모두 보여줍니다.

타입은 VIEW입니다. 

해당 뷰의 컬럼은 아래와 같습니다. 

아래의 컬럼은 ALL_SEQUENCES의 컬럼이며 USER_SEQUENCES와 같습니다. 

컬럼 명 컬럼 내용
SEQUENCE_OWNER 시퀀스의 소유자
SEQUENCE_NAME 시퀀스 이름
MIN_VALUE 시퀀스의 최소값
MAX_VALUE 시퀀스의 최대값
INCREMENT_BY 시퀀스가 증가하는 값
CYCLE_FLAG 시퀀스 순환 여부
ORDER_FALG 시퀀스 번호 순서 생성 여부 
CACHE_SIZE 시퀀스의 캐시 크기
LAST_NUMBER 실행된 마지막 시퀀스 번호 

시퀀스는 특정 번호를 채번할 때 자주 사용되는데

업무를 하다보면 데이터 보정을 하는 상황이 발생하고 

데이터 보정은 하면 안되지만 그래도 해야한다면

시퀀스를 사용하는 컬럼이라면 꼭 시퀀스 번호를 확인해야 한다.

시퀀스가 현재 몇번째인지 확인하지 않고 데이터 보정을 하는 경우라면 

쿼리에서 조회 시 오류가 날 수 있기 때문이다. 

따라서 현재 시퀀스 기준으로 이전번호와 다음 번호를 구하는 쿼리를 한번 봅시다.

/**
* 시퀀스 이전 번호 조회 
*/ 
SELECT 시퀀스명.CURRVAL
FROM DUAL;

/**
* 시퀀스 다음 번호 조회
*/ 
SELECT 시퀀스명.NEXTVAL
FROM DUAL;

위의 쿼리를 이용해서 현재 사용하고 있는 시퀀스의 이전번호와 다음번호를 조회할 수 있다. 

이전값은 CURRVAL, 다음값은 NEXTVAL 을 이용하여 조회해주면 된다.  

 


요즘 추세는 잘 모르겠지만?!

채번하는 경우 시퀀스를 이용해서 사용하다보니 

만약에 데이터 보정할 때 조금 골머리가....

그래도 시퀀스에 대해 어느정도 알고 있다면 채번 관련해서 조금 쉽게 접근할 수 있을 것입니다. 

무튼 다음에는 더 좋은 정보로 찾아오겠습니다. 

 

728x90