강좌
클라우드/리눅스에 관한 강좌입니다.
데이터베이스 분류

랜덤한 숫자/문자 생성(DBMS_RANDOM 패키지)

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

랜덤한 숫자/문자 생성(DBMS_RANDOM 패키지)

 

t.gif
t.gif
아래의 원문을 정리했음
원문: http://dbasupport.com/oracle/ora9i/random_numbers.shtml


오라클의 패키지 dbms_random은 랜덤한 숫자/문자를 만들어 주는 기능을 제공한다.
이는 랜덤한 패스워드, 추첨번호 등에 응용할 수 있겠다.
DB단에서 생성되므로 외부의 로직(웹,APP,..)에 대한 의존성을 없앨 수 있는 장점이 있겠다.

패키지생성: /rdbms/admin/dbmsrand.sql
패키지    : DBMS_RANDOM


DBMS_RANDOM 패키지내 함수

RANDOM : 랜덤한 숫자 생성

VALUE  : 랜덤한 숫자 생성(지정한 범위에서, 디폴트: 0-1)

STRING : 랜덤한 문자열 생성(문자열의 구성은 첫번째 인수값으로 지정.)
첫번째 인수값
  U - 대문자
  L - 소문자
  A - Alphanumeric
  X - Alphanumeric (대문자로 된)
  P - 출력가능한 문자로만
두번째 인수값 - 문자열길이 지정

INITIALIZE : seed숫자를 통한 패키지의 초기화

SEED : seed숫자를 변경

TERMINATE : 종료

STRING 함수에서 A, X의 경우 알파뉴메릭으로 생성된다고 했지만,
여러번 테스트해 보았지만 숫자가 포함되어 생성되는 경우는 없었다.
신뢰하지 않는 것이 좋겠다.


SQL> col random format 999999999999999999999
SQL> select dbms_random.random from dual; 랜덤한 숫자 출력(양수/음수)

                RANDOM
----------------------
             712490986

SQL> /

                RANDOM
----------------------
            -265131627

SQL> select dbms_random.value from dual; 랜덤한 숫자 출력(0~1사이)

     VALUE
----------
.479131147

SQL> select dbms_random.value(1,1000) random from dual; 1~1000사이의 숫자

                RANDOM
----------------------
                   727

SQL> select dbms_random.value(100000000000, 999999999999) random from dual; 위와 마찬가지

                RANDOM
----------------------
          314598161006

SQL> set linesize 50
SQL> select dbms_random.string('U', 20) str from dual; 대문자로 된 랜덤한 문자열

STR
--------------------------------------------------
MAFMGVJVTUTCYJMCVJOP

SQL> select dbms_random.string('L', 20) str from dual; 소문자로 된 랜덤한 문자열

STR
--------------------------------------------------
ntpmvektqqgytitlmabi

SQL> select dbms_random.string('A', 20) str from dual; 대/소문자로 된 랜덤한 알파뉴메릭(문자/숫자)

STR
--------------------------------------------------
jhsVWesqaKAJbKuPJeLu

SQL> select dbms_random.string('X', 20) str from dual; 대문자로 된 랜덤한 알파뉴메릭(문자/숫자)

STR
--------------------------------------------------
GMRG5IJFEIEI0E0YCG9C

SQL> select dbms_random.string('P', 20) str from dual;

STR
--------------------------------------------------
}t.OY)Sh6AiEq4L>=-K+

SQL>


This article comes from dbakorea.pe.kr (Leave this line as is)

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,041 명
  • 현재 강좌수 :  35,855 개
  • 현재 접속자 :  100 명