ROWNUM 으로 SELECT INSERT 할 때 자릿수가 오버가 됩니다. 방안이 있을까요? 0 2 689

by 오라크으을럽 [SQL Query] ROWNUM 자릿수 [2018.06.27 15:57:32]


INSERT 할 테이블(예.NSERT_DB)의 컬럼 SEQ는 char(3) 입니다.

SELECT 해서 INSERT를 하려고 하는데, 데이터가 1000건이 넘어가다 보니 에러가 납니다.

INSERT INSERT_DB

SELECT LPAD(ROWNUM, 3, 0) SEQ, TEST_1

  FROM SELECT_DB

WHERE .....

 

ROWNUM으로 SELECT 할 때 001, 002... 999 다음에 A01 이런식으로 표기가 가능한 지 문의드립니다.

by 마농 [2018.06.27 16:19:42]

16진수는 어때요?
16진수(000 ~ FFF) 는 10진수(0~4095) 표현 가능
 TO_CHAR(ROWNUM, 'fm00X')


by 우리집아찌 [2018.06.28 10:38:27]
SELECT CASE WHEN ROWNUM >= 1000 THEN  CHR(55 + SUBSTR(ROWNUM, 0, 2)) || SUBSTR(TO_CHAR(ROWNUM),3,2)
            ELSE LPAD(ROWNUM, 3, 0)  
       END SEQ 
  FROM ( SELECT * FROM DUAL CONNECT BY LEVEL <= 2000 ) 

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입