본문

ORA-02289: 시퀀스가 존재하지 않습니다.

반응형

# ORA-02289: 시퀀스가 존재하지 않습니다.

필자는 테이블 생성 시, @SequenceGenerator 어노테이션 선언을 해놓고 Sequence를 생성하지 않아 위와같은 에러가 발생했었다. 시퀀스는 유일한 값을 생성해주는 오라클 객체로 보통 primary key로 사용할 수 있는 순차적으로 증가하는 숫자 컬럼을 생성할 때 사용한다.



1. 생성되어있는 시퀀스 확인하기

1
SELECT * FROM USER_SEQUENCES;
cs


ex) 조회 결과


2. Default 시퀀스 생성하기

1
CREATE SEQUENCE 시퀀스이름;
cs

ex) 1

SELECT * FROM USER_SEQUENCES WHERE SEQUENCE_NAME='SEQ_STS_TOKEN_LOG';

3. 시퀀스 생성하기

1
2
3
4
5
6
7
CREATE SEQUENCE 시퀀스이름
    INCREMENT BY 숫자
    START WITH 숫자
    MAXVALUE 숫자 or NOMAXVALUE
    MINVALUE 숫자 or NOMINVALUE
    CYCLE or NOCYCLE
    CACHE or NOCACHE;
cs


ex) 사용예시

1
2
3
4
5
6
7
CREATE SEQUENCE SEQ_STS_TOKEN_LOG
    INCREMENT BY 1
    START WITH 1
    MAXVALUE 9999999999999999999999999999
    MINVALUE 1
    NOCYCLE --CYCLE_FLAG
    CACHE 20; --CACHE_SIZE


- INCREMENT BY 숫자 : 증가값 (default 1)

- START WITH 숫자 : 시작값 (default 1)

- MAXVALUE 숫자 or NOMAXVALUE : 최고값 (nomaxvalue default 10*E27)

- MINVALUE 숫자 or NOMINVALUE : 최소값 (nominvalue default 1)

- CYCLE or NOCYCLE : 최소,최고값이후 값의 생성유무 (default nocycle)

- CACHE or NOCACHE : 메모리에 유지할 값의 수 (default 20)


4. 시퀀스 수정하기

start with 는 수정할 수 없음,  start with를 제외하고 시퀀스 생성시 사용하는 옵션 모두 사용가능

SQL>ALTER SEQUENCE 시퀀스명 INCREMENT BY 2;

 

5. 시퀀스 삭제하기

 SQL>DROP SEQUENCE 시퀀스명;




 참고: 

http://egloos.zum.com/uknowapps/v/1813117

http://jaehoon0210.tistory.com/entry/oracle-sequence-%EC%83%9D%EC%84%B1-%EC%82%AD%EC%A0%9C-%EC%A1%B0%ED%9A%8C

반응형

공유

댓글