시퀀스를 만들어놓지않고 시퀀스를 호출해서 나는 에러다.
아래의 예시코드를 보며 실하면 시퀀스를 만들 수 있다.
CREATE SEQUENCE "ORDER_SEQ_NUM"
MINVALUE 0 MAXVALUE 10000000 INCREMENT BY 1
START WITH 400
CACHE 20 NOORDER NOCYCLE ;
시퀀스는 시퀀스 폴더에 따로 저장된다.
위 코드를 해석해보자.
"ORDER_SEQ_NUM" 이라는 이름으로 시퀀스를 생성하겠다.
시퀀스가 생성할 수 있는 최소값은 0, 최대값은 10000000으로 , 시퀀스는 1씩 증가된다.
시퀀스가 시작할 숫자를 400으로 설정한다.
시퀀스 값을 캐시에 저장하고, 한 번에 20개의 값을 가져온다.
NOORDER는 순서를 보장하지 않겠다.
NOCYCLE은 순환하지 않겠다.
"ORDER_SEQ_NUM" 시퀀스는 400부터 시작하여 1씩 증가하면서
최대값 10000000까지 증가할 수 있으며,
한 번에 20개의 값을 가져옵니다.
이때, 시퀀스 값의 순서는 보장되지 않으며, 순환하지 않는다는 의미이다.
이때 "한 번에 20개의 값을 가져온다"는 무슨의미일까?
시퀀스가 값을 생성할 때,
Oracle 데이터베이스가 시퀀스 값을 미리 생성하여 캐시에 저장해두어
시퀀스 값을 생성하는 데 필요한 오버헤드를 줄이겠다는 말이되겠다.
'Database > SQL Developer' 카테고리의 다른 글
java.sql.SQLSyntaxErrorException: ORA-00911: 문자가 부적합합니다 (0) | 2023.04.12 |
---|---|
Oracle sql 날짜수정하기 add_months 함수 (0) | 2023.04.12 |
Oracle sql 데이터 중복제거 DISTINCT (0) | 2023.04.11 |
Oracle sql 데이터 수정, update set where (0) | 2023.04.11 |
여러개등록 오류, sql 데이터 바꾸기 update set (0) | 2023.04.11 |