본문 바로가기
Database/Oracle

DBMS_RANDOM 패키지

by oncerun 2021. 5. 16.
반응형

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

댓글