Oracle 시퀀스 Nextval 함수

Oracle Sikwonseu Nextval Hamsu



Oracle에서 시퀀스는 지정된 증분에 따라 일련의 숫자 값을 생성하는 데이터베이스 개체를 나타냅니다. 시퀀스는 일반적으로 데이터베이스 테이블의 레코드에 대한 고유한 기본 키 값을 생성하는 데 사용됩니다.

이 자습서에서는 Oracle 시퀀스로 작업할 때 NEXTVAL 함수를 사용하는 방법을 배웁니다.

참고: 이 자습서에서는 Oracle 시퀀스 생성의 기본 사항을 다루지 않습니다. 자세한 내용은 Oracle 시퀀스에 대한 자습서를 참조하십시오.







Oracle Nextval 함수

Oracle 시퀀스의 nextval 함수는 주어진 시퀀스에서 다음 값을 가져오는 데 사용됩니다.



다음 코드 스니펫과 같이 함수의 구문을 표현할 수 있습니다.



sequence_name.nextval

이 함수는 인수나 매개변수를 허용하지 않습니다. 그런 다음 정의된 시퀀스의 다음 값을 반환합니다.





함수 데모 예

예를 들어 보겠습니다. 다음 코드와 같이 간단한 Oracle 시퀀스를 정의하는 것으로 시작합니다.

시퀀스 만들기 test_sequence
시작하기 1
증분 기준 1 ;

CREATE SEQUENCE 문을 사용하여 새 Oracle 시퀀스를 초기화합니다. 그런 다음 시퀀스가 ​​시작되는 값과 각각의 새로 생성된 값에 대한 증분 값을 정의합니다.



이 예에서 test_sequence는 값 1에서 시작하여 각 새 값에서 1씩 증가합니다. 이렇게 하면 1,2,3,4,5 등에서 시작하는 일련의 숫자 값이 생성됩니다.

Oracle Nextval 함수 사용

다음과 같이 test_sequence 시퀀스에서 다음 값 함수를 사용하여 다음 값을 얻을 수 있습니다.

선택하다 이중에서 test_sequence.nextval;

다음과 같이 시퀀스에서 다음 값을 반환해야 합니다.

명령문을 다시 호출하면 일련의 다음 값인 2를 반환해야 합니다.

이것은 값이 소진되거나 시퀀스에 정의된 최대값에 도달할 때까지 계속됩니다. 최소값과 최대값을 설정하는 방법을 알아보려면 Oracle 시퀀스 자습서를 확인하십시오.

Nextval 함수를 사용하여 값 반복

다음 코드와 같이 nextval 함수를 사용하여 1에서 10까지의 숫자를 인쇄할 수도 있습니다.

시퀀스 만들기 looper_sequence
시작하기 1
증분 기준 1 ;

세트 SERVEROUTPUT 켜짐;
시작하다
나는 안으로 1 .. 10
고리
DBMS_OUTPUT.PUT_LINE ( looper_sequence.nextval ) ;
루프 종료;
끝;

제공된 코드는 1에서 시작하여 새로 생성된 각 값에 대해 1씩 증가하는 looper_sequence라는 새 시퀀스를 만듭니다.

그런 다음 DBMS_OUTPUT 패키지가 SQL*Plus 콘솔에 메시지를 표시할 수 있도록 하는 SERVEROUTPUT 옵션을 활성화합니다.

마지막으로 end/begin 문 안에 for 루프를 포함하여 1에서 10까지의 값 범위를 반복합니다. 그런 다음 범위의 각 값에 대해 DBMS_OUTPUT.PUT_LINE 함수를 호출하고 looper_sequence 시퀀스의 다음 값을 콘솔.

이 코드는 루퍼 시퀀스의 다음 10개 값을 인쇄합니다. 우리의 경우에는 각각의 새로운 호출에 대해 1에서 10 또는 11 – 20 등의 값이 될 것입니다.

결과 출력 :

1
2

4
5
6
7
8
9
10


PL / SQL 프로시저가 성공적으로 완료되었습니다.

Insert 문에서 Nextval 함수 사용

insert 문에서 nextval 함수를 기본 키로 사용할 수도 있습니다. 예를 들어:

에 집어 넣다 사용자 ( ID ,first_name,credit_card,국가 )
( test_sequence.nextval, '제임스 스미스' , '4278793631436711' , '아랍 에미리트' ) ;

주어진 예제에서는 test_sequence에서 nextval 함수를 호출하여 테이블의 id 열에 대한 값을 삽입합니다.

결론

이 게시물에서는 Oracle nextval 함수를 사용하여 시퀀스의 다음 값을 가져오는 방법을 발견했습니다. 또한 함수를 사용하여 값 집합을 반복하거나 테이블 열에 고유한 값을 삽입하는 방법도 배웠습니다.