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
- 파이팅코리아
- 예매 알림
- K번째수
- 노션트렐로광고X
- 자바
- 다음 맵 api
- 카카오인턴
- 안드로이드 스튜디오
- Spring
- 프로그래머스
- 124 나라의 숫자
- 객체지향과 디자인패턴
- 맵 api
- 문자열 내 마음대로 정렬하기
- 스프링 부트
- json
- 타겟 넘버
- FrogJmp
- cgv
- 기능개발
- 텔레그램
- 완주하지 못한 선수
- java
- 쇠막대기
- codility
- API
- 더 나은 내일
- 알고리즘
- 최솟값
- AWS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함