ORACLE 문자 포함 자동 채번 쿼리
일련번호를 'K0001' 'K0002' 이런식으로 증가시켜야한다는 요청을 받고 고민에 빠졌다. 시퀀스 권한도 없어서 JAVA 혹은 SQL로만 해결해야하는데, SELECT해서 자바에서 처리를 하다보면 여러 사람이 동시에 작업할 경우 일련번호가 겹칠 수 있다고 생각했다. 쿼리로 MAX(SEQ) + 1을 해도 겹칠 수 있지 않을까 생각하지만 주어진 상황에선 최선이지 않나 생각했다. 1 SELECT NVL2(MAX(SEQ_NO), 'K'||LPAD(REPLACE(MAX(SEQ_NO), 'K') + 1, 7, '0'), 'K0001') FROM TEST; NVL2로 처음 값이 없을 경우(NULL) 'K0001'로 지정되도록 했다. MAX(SEQ_NO)를 통해 현재 중 가장 큰 일련번호를 가져온다. REPLACE로..
DB/Oracle
2019. 8. 10. 19:39
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 기능개발
- codility
- 다음 맵 api
- 최솟값
- 자바
- 124 나라의 숫자
- 맵 api
- cgv
- 완주하지 못한 선수
- K번째수
- 쇠막대기
- 노션트렐로광고X
- 프로그래머스
- 카카오인턴
- 파이팅코리아
- json
- AWS
- 예매 알림
- 객체지향과 디자인패턴
- 알고리즘
- 더 나은 내일
- 텔레그램
- java
- FrogJmp
- 문자열 내 마음대로 정렬하기
- Spring
- API
- 타겟 넘버
- 스프링 부트
- 안드로이드 스튜디오
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
글 보관함