본문 바로가기
웹프로그래밍/Oracle or Sql

시퀀스, 순번(MAX+1)을 함수로 사용하는 방법

by Seras 2020. 10. 27.
반응형

< 시퀀스를 함수로 사용하는 방법 >

 

SELECT INSERT 할 경우나 서브쿼리문의 시퀀스 사용시 불가능 할때가 있습니다.

이럴때는 함수를 사용 하시면은 원하시는 순번 등록을 할 수 있습니다.

 

두 가지를 잘 활용해서 개발할때 도움 되셨스면 합니다.

 

1. 함수를 이용하는 시퀀스 순번

1-1 시퀀스 생성

CREATE SEQUENCE /*시퀀스명*/
INCREMENT BY 1
START WITH 0
MINVALUE 0
MAXVALUE 999999999999
NOCYCLE
NOORDER;

 

1-2 함수생성

CREATE OR REPLACE
FUNCTION   /* 함수명 */
RETURN
NUMBER AS num NUMBER;

BEGIN
  SELECT  /*시퀀스명*/.NEXTVAL
  INTO num 
  FROM DUAL;
  RETURN num ;
END /* 함수명 */;

 

2.  함수를 이용한 해당 테이블 MAX+1 순번

 

2-1 함수생성

CREATE OR REPLACE
FUNCTION /* 함수명 */
RETURN NUMBER AS  num NUMBER;

BEGIN
  SELECT NVL( MAX( TO_NUMBER( TRIM(NO) ) ), 0 ) + 1
  INTO num 
  FROM /* 테이블명 */;
  RETURN num ;
END /* 함수명 */;

 

반응형