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
'DB > SQL' 카테고리의 다른 글
[MySQL] Access denied for user '사용자명'@'%' to database 'DB명' 오류 해결 (0) | 2024.10.05 |
---|---|
PLSQL이란? - 세기무민 (0) | 2022.07.12 |
[세무민의 코딩일기] : 오라클 프로시저 및 함수 내용 찾기 (0) | 2022.02.21 |
[세무민의 코딩일기] mysql에서 Procedure 사용하기 (0) | 2022.02.03 |
[세무민의 코딩일기] mysql로 Union 사용하기 (0) | 2021.12.21 |