[oracle] 테스트 데이터 만들기
개발을 하다보면 테스트 데이터가 필요할 때가 있다.
--> SELECT LEVEL AS ID
,ROUND(DBMS_RANDOM.VALUE(1, 100),0) AS RAN
,'123456ABC' || DBMS_RANDOM.STRING('U', 3)
|| SUBSTR('0000', 1, 4 - LENGTH(TRIM(LEVEL))) || LEVEL AS DATA1
FROM DUAL
CONNECT BY LEVEL <= 100 ;
RANDOM 함수를 사용하여 KEY중복을 방지하였다.
위의 쿼리를 응용하면...
--> INSERT INTO 테이블명 ( 필드1, 필드2, 필드3)
SELECT LEVEL AS ID
,ROUND(DBMS_RANDOM.VALUE(1, 100),0) AS RAN
,'123456ABC' || DBMS_RANDOM.STRING('U', 3)
|| SUBSTR('0000', 1, 4 - LENGTH(TRIM(LEVEL))) || LEVEL AS DATA1
FROM DUAL
CONNECT BY LEVEL <= 100 ;
위에서 사용한 랜덤함수를 살펴보자.
--> DBMS_RANDOM.VALUE(시작범위, 종료범위)
--> DBMS_RANDOM.STRING(규칙인자, 문자열길이)
U : 대문자로된 랜덤 문자생성
L : 소문자로된 랜던 문자생성
A : 대/소문자 + 숫자 로된 문자열 생성
X : 대문자 + 숫자 로된 문자열 생성
P : 출력가능한 문자로만
'DB > ORACLE' 카테고리의 다른 글
[oracle] instr 문자열에서 특정값 위치 찾기 (0) | 2022.05.09 |
---|---|
[oracle] 테이블 이름 바꾸기 / 컬럼 추가, 컬럼 삭제, 컬럼 수정 스크립트 (0) | 2022.05.09 |
[oracle] 시퀀스 생성 (0) | 2022.05.02 |
[oracle] 오라클의 중복 데이터 찾는 쿼리 (0) | 2013.09.02 |
댓글