DBMS_RANDOM
개요
DBMS_RANDOM은 임의의 숫자를 생성하는 기능을 제공한다.
INITIALIZE
n/a
입력받은 seed 번호를 지정하여 DBMS_RANDOM 패키지를 초기화하는 프로시저이다.
NORMAL
DOUBLE PRECISION
표준 정규 분포(가우스 분포)에서의 임의값을 추출하는 함수이다.
RANDOM
INTEGER
-2 ^31보다 크거나 같고, 2 ^31보다 작은 임의의 정수를 생성하는 함수이다.
SEED
VOID
입력받은 seed 번호나 문자열을 지정하여 DBMS_RANDOM 패키지를 초기화하는 프로시저이다.
STRING
TEXT
임의의 문자열을 생성하는 함수이다.
TERMINATE
n/a
DBMS_RANDOM 패키지를 종료한다.
VALUE
DOUBLE PRECISION
범위 내에서 임의의 숫자를 생성하는 함수이다.
보안 모델
설치는 super user에 이루어져야 하고 public으로 공개되어 있다.
구성
본 절에서는 DBMS_RANDOM 패키지에서 제공하는 프로시저와 함수를 알파벳 순으로 설명한다.
INITIALIZE
INITIALIZE 프로시저는 입력 받은 seed 번호를 지정하여 DBMS_RANDOM 패키지를 초기화하는 프로시저이다.
프로토타입
INITIALIZE(val IN INTEGER)
파라미터
val
DBMS_RANDOM 내부 알고리즘에서 임의값을 생성할 seed 번호이다.
예제
CALL DBMS_RANDOM.INITIALIZE(6475);
NORMAL
NORMAL 함수는 표준 정규 분포(가우스 분포)에서의 임의값을 추출하는 함수이다.
프로토타입
NORMAL
RETURNS DOUBLE PRECISION
예제
x := DBMS_RANDOM.NORMAL();
RANDOM
RANDOM 함수는 -2 ^31보다 크거나 같고, 2 ^31보다 작은 임의의 정수를 생성한다.
프로토타입
RANDOM
RETURNS INTEGER
예제
x := DBMS_RANDOM.RANDOM();
SEED
SEED 프로시저는 입력받은 seed 번호나 문자열을 지정하여 DBMS_RANDOM 패키지를 초기화하는 프로시저이다.
프로토타입
SEED(val IN INTEGER)
SEED(val IN TEXT)
파라미터
val
DBMS_RANDOM 내부 알고리즘에서 임의값을 생성할 seed 번호나 문자열이다.
예제
CALL DBMS_RANDOM.SEED(8);
CALL DBMS_RADOM.SEED('some string value');
STRING
STRING 함수는 임의의 문자열을 생성하는 함수이다.
프로토타입
STRING(opt IN TEXT, len IN INT)
RETURNS TEXT
파라미터
opt
생성하고 싶은 문자열의 형태이고, 항목은 아래와 같다.
'u' 또는 'U' : 대문자 알파벳의 문자열
'l' 또는 'L' : 소문자 알파벳의 문자열이다.
'a' 또는 'A' : 대소문자 구분 없이 임의의 알파벳의 문자열이다.
'x' 또는 'X' : 임의의 대문자 알파벳 또는 숫자의 문자열이다.
'p' 또는 'P' : 임의의 출력 가능한 문자들의 배열그 외의 값일 경우에는 기본적으로 대문자 알파벳의 문자열이다.
len
생성할 문자열의 길이이다.
예제
x := DBMS_RANDOM.STRING('a', 10);
TERMINATE
DBMS_RANDOM 패키지를 종료한다.
프로토타입
TERMINATE
VALUE
VALUE 함수는 범위 내에서 임의의 숫자를 생성한다. 범위가 지정되지 않은 경우는 0보다 크거나 같고 1보다 작은 숫자를 생성한다.
프로토타입
VALUE
RETURNS DOUBLE PRECISION;
VALUE (low DOUBLE PRECISION, high DOUBLE PRECISION)
RETURNS DOUBLE PRECISION;
파라미터
low
임의값 범위 내에서의 최소값이다.
high
임의값 범위 내에서의 최대값으로, 이 값보다 크거나 같을 수 없다.
예제
x := DBMS_RANDOM.VALUE();
x := DBMS_RANDOM.VALUE(-30, 100);
Last updated