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