ORA-08002: 시퀀스 CURRVAL은 이 세션에서는 정의 되어 있지 않습니다, 영문으로는 ORA-08002: sequence currval is not yet defined in this session 오류는 다음과 같은 원인으로 발생하며 해결할 수 있습니다. 스퀀스가 무엇인지에 대해 간단히 알아보고, ORA-08002 오류의 발생 원인과 해결 방법에 대해 안내해 드리겠습니다.
오라클 데이터베이스에서 시퀀스는 세션에서 유일한 오로지 하나의 값을 설정하기 위한 객체입니다.
특히 특정 테이블에 컬럼을 지정하여 +1씩 가져오는 프로세스에서 비슷한 시간대에 값을 조회하는 경우 겹치는 현상을 방지하기 위하여 사용합니다.
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;