반응형
오라클에서는 랜덤한 값을 생성하기 위해 DBMS_RANDOM이란 패키지를 제공합니다.
이 패키지 안에 있는 함수와 프로시저들을 알아보겠습니다.
요약
프로시저/함수 | 설명 |
---|---|
NORAMAL 함수 | 정규분포(가우스 분포)에서 특정한 숫자를 리턴합니다 |
RANDOM 함수 | 임의의 숫자를 리턴합니다 |
SEED 프로시저 | seed값을 리셋합니다 |
STRING 함수 | 임의의 문자열을 리턴합니다 |
VALUE 함수 | 두 개의 숫자 파라미터 범위 내의 임의의 정수를 가져옵니다. |
NORAML 함수
표준 정규 분포(가우스 분포)에서의 임의값을 추출하는 함수입니다.
-- 프로토 타입
DBMS_RANDOM.NORMAL
RETURN NUMBER;
-- 쿼리 예
SELECT DBMS_RANDOM.NORMAL FROM DUAL;
-- 출력 예
-- 1.02863830167819718693651743539890024055
RANDOM 함수
-(2의 31제곱)보다 크거나 같고, 2의 31제곱보다 작은 임의의 정수를 생성합니다.
-- 프로토 타입
DBMS_RANDOM.RANDOM
RETURN BINARY_INTEGER;
-- 쿼리 예
SELECT DBMS_RANDOM.RANDOM FROM DUAL;
-- 출력 예
-- -672618330
SEED 프로시저
새로운 seed를 지정하여 임의값 생성 시퀀스를 새로 생성합니다.
기존과 동일한 seed를 지정하면 동일 시퀀스 내의 첫 번째 값으로 돌아가므로,
매 호출 후 임의값을 추출하면 같은 값이 나옵니다.
-- 프로토타입
DBMS_RANDOM.SEED
(
val IN BINARY_INTEGER -- 임의값을 생성할 seed 번호나 문자열
);
DBMS_RANDOM.SEED
(
val IN VARCHAR2 --임의값을 생성할 seed 번호나 문자열
);
-- 쿼리 예
DBMS_RANDOM.SEED(3);
STRING 함수
임의의 문자열을 생성합니다.
-- 프로토타입
DBMS_RANDOM.STRING
(
opt IN CHAR, -- 생성하고 싶은 문자열의 형태
-- 'u' 또는 'U': 대문자 알파벳의 문자열
-- 'l' 또는 'L': 소문자 알파벳의 문자열
-- 'a' 또는 'A': 대소문자 구분 없이 임의의 알파벳의 문자열
-- 'x' 또는 'X': 임의의 대문자 알파벳 또는 숫자의 문자열
-- 'p' 또는 'P': 임의의 출력 가능한 문자들의 배열
-- 그 외의 값일 경우에는 기본적으로 대문자 알파벳의 문자열
len IN NUMBER --생성할 문자열의 길이
)
RETURN VARCHAR2;
-- 쿼리 예
SELECT DBMS_RANDOM.STRING('a', 1) FROM DUAL;
-- 출력 예
-- N
VALUE 함수
범위 내에서 임의의 숫자를 생성합니다.
범위가 지정되지 않은 경우는 0보다 크거나 같고, 1보다 작은 숫자를 생성합니다.
-- 프로토 타입
DBMS_RANDOM.VALUE
(
low IN NUMBER,
high IN NUMBER
)
RETURN NUMBER;
-- 쿼리 예
SELECT DBMS_RANDOM.VALUE(3, 100) FROM DUAL;
-- 출력 예
-- 27.44551905499295525401846162094624981733
reference : https://docs.oracle.com/database/timesten-18.1/TTPLP/d_random.htm#TTPLP040
728x90
반응형
'개발팁' 카테고리의 다른 글
.NET Framework C# NUnit 사용하기, NUnit 사용법, NUnit이란? (1) | 2024.10.26 |
---|---|
윈도우10 가상 데스크톱 사용법 (0) | 2024.10.24 |
오라클 쿼리 성능향상을 위한 sql 구문 작성 가이드 (0) | 2024.10.16 |
윈도 스크린샷 꿀팁, 캡처 및 스케치, 클립보드 히스토리 (0) | 2024.10.14 |
nmap이란? nmap 사용방법, 윈도 포트스캔, nmap 사용법 (2) | 2024.10.08 |
댓글