웹프로그래밍/Oracle or Sql
시퀀스, 순번(MAX+1)을 함수로 사용하는 방법
Seras
2020. 10. 27. 12:55
반응형
< 시퀀스를 함수로 사용하는 방법 >
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 /* 함수명 */; |
반응형