반응형
DBMS_RANDOM패키지를 사용하면 숫자와 문자 랜덤 데이터를 생성할 수 있으며, 테이블 데이터를 랜덤 한 순서로 정렬하여 조회할 수 있다.
1. DBMS_RANDOM.VALUE
- 랜덤하게 숫자를 추출하는 함수이다.
- DBMS_RANDOM.VALUE( min IN NUMBER, max IN NUMBER)와 같은 문법으로 사용한다.
SELECT DBMS_RANDOM.VALUE(1,100) FROM DUAL CONNECT BY LEVEL <= 10;
소수점을 포함하기 때문에 올림 밑 버림 함수랑 같이 사용하여 정수로 추출하여 사용하는 경우가 많다.
connect by절은 행간의 데이터를 다루기 위한 오라클만의 문법이다.
2. DBMS_RANDOM.STRING
- 랜덤하게 문자를 추출하는 함수이다.
- DBMS_RANDOM.STRING('option', len IN NUMBER);
OPTION은 다음과 같다.
OPTION | 기능 |
u or U | 대문자로 랜덤 추출 |
l or L | 소문자로 랜덤 추출 |
a or A | 대/소문자 구별하지 않고 추출 |
x or X | 대문자와 숫자의 조합 |
p or P | 문자혼합 |
SELECT DBMS_RANDOM.STRING('U', 10) AS RANDOM_STRING FROM DUAL
UNION ALL
SELECT DBMS_RANDOM.STRING('L', 10) FROM DUAL
UNION ALL
SELECT DBMS_RANDOM.STRING('A', 10) FROM DUAL
UNION ALL
SELECT DBMS_RANDOM.STRING('X', 10) FROM DUAL
UNION ALL
SELECT DBMS_RANDOM.STRING('P', 10) FROM DUAL
3. DBMS_RANDOM.RANDOM
- 랜덤한 숫자를 양수/음수로 생성해 준다.
- SELECT DBMS_RANDOM.RANDOM FROM DUAL; 을 실행해보자.
SELECT DBMS_RANDOM.RANDOM FROM DUAL CONNECT BY LEVEL <= 10;
이 말은 인라인 뷰에서 랜덤 하게 행을 뽑아 원하는 만큼 추출할 수도 있다.
SELECT * FROM (SELECT * FROM EMP2 ORDER BY DBMS_RANDOM.RANDOM) WHERE ROWNUM <= 3;
활용하는 경우가 상당히 많으니 데이터베이스를 자주 활용한다면 외울만하다.
반응형
'Database > Oracle' 카테고리의 다른 글
[ORACLE] PL/SQL (0) | 2021.05.16 |
---|---|
[Oracle 12c] Sequence (0) | 2021.05.16 |
[oracle] db review (0) | 2021.05.15 |
CHAR ? VACHAR? (0) | 2021.04.26 |
ORACLE SQL NULL관련 함수 (0) | 2020.04.20 |
댓글