ORA-08002: 시퀀스 SEQUENCE_NAME.CURRVAL은 이 세션에서는 정의 되어 있지 않습니다 (ORA-08002: sequence sequence_name.currval is not yet defined in this session)

ORA-08002: 시퀀스 CURRVAL은 이 세션에서는 정의 되어 있지 않습니다, 영문으로는 ORA-08002: sequence currval is not yet defined in this session 오류는 다음과 같은 원인으로 발생하며 해결할 수 있습니다. 스퀀스가 무엇인지에 대해 간단히 알아보고, ORA-08002 오류의 발생 원인과 해결 방법에 대해 안내해 드리겠습니다.

오라클 데이터베이스에서 시퀀스는 세션에서 유일한 오로지 하나의 값을 설정하기 위한 객체입니다.
특히 특정 테이블에 컬럼을 지정하여 +1씩 가져오는 프로세스에서 비슷한 시간대에 값을 조회하는 경우 겹치는 현상을 방지하기 위하여 사용합니다.

ORA-08002: 시퀀스 SEQUENCE_NAME.CURRVAL은 이 세션에서는 정의 되어 있지 않습니다

ORA-08002 오류는 시퀀스를 해당 세션에서 아직 정의하지 않아서 발생합니다. 시퀀스를 사용하려면 NEXTVAL로 세션에서 정의하여야 합니다.

ORA-08002: 시퀀스 CURRVAL은 이 세션에서는 정의 되어 있지 않습니다 원인

다음은 CURRVAL 로 아직 정의 되어 있지 않은 시퀀스를 조회하려고 시도하여 오류가 발생하는 예시 자료입니다.

SET SERVEROUTPUT ON;

DECLARE
   SEQ   NUMBER;
BEGIN
   SELECT SEQUENCENAME.CURRVAL INTO SEQ FROM DUAL;

   DBMS_OUTPUT.PUT_LINE (SEQ);
END;

ORA-08002: 시퀀스 CURRVAL은 이 세션에서는 정의 되어 있지 않습니다 해결하기

시퀀스는 다음과 같이 NEXTVAL 로 시퀀스 값을 세션에서 먼저 정의하여야 합니다.

SET SERVEROUTPUT ON;

DECLARE
   SEQ   NUMBER;
BEGIN
   SELECT SEQUENCENAME.NEXTVAL INTO SEQ FROM DUAL;

   DBMS_OUTPUT.PUT_LINE (SEQ);
END;
댓글 쓰기
가져가실 때, 출처 표시 부탁드려요! 감사합니다. 💗