질의작성

오라클의 DBMS_RANDOM.STRING() 함수를 CUBRID 식으로 구현하는 방법

by 이경오 posted Dec 08, 2015

1. 개요

 

오라클에서 제공하는 DBMS_RANDOM.STRING() 함수를 CUBRID 에서 어떻게 구현되는지 알아봅니다.

 

DBMS_RANDOM.VALUE() 함수는  CUBRID의 RANDOM() 혹은 DRANDOM() 함수로 구현이 가능합니다.

 

하지만 DBMS_RANDOM.STRING() 함수이용한 임의의 문자열을 생성 하는 것은 아래의 설명을 참고 하시면 됩니다.

 

2. 오라클의 DBMS_RANDOM() 함수 설명

 

숫자와 문자의 랜덤 데이터를 생성 합니다.

 

 a. 임의의 소문자 10자리 생성

 

select
dbms_random.string('l', 10)
from dual;

 

결과

kjrdzqsrcw

 

b. 임의의 대문자 10자리 생성

 

select
dbms_random.string('u', 10)
from dual

 

결과

HRJOWGIZHH

 

c. 임의의 대소문자 10자리 생성

 

select
dbms_random.string('a', 10)
from dual

 

결과

DcXFZOieAe

 

d. 임의의 숫자 및 영문자 10자리 생성

 

select
dbms_random.string('x', 10)
from dual

 

결과

LKGRBM3XDV

 

3. CUBRID에서 오라클의 DBMS_RANDOM 구현

 

CUBRID에서는 RANDOM() 함수와 GROUP_CONCAT() 함수를 결합하여 오라클의 DBMS_RANDOM() 함수 구현이 가능합니다.

 

a. 임의의 소문자 10자리 생성

 

SELECT
GROUP_CONCAT(CHR((RANDOM() % 26) + 97) SEPARATOR '')
FROM db_root
CONNECT BY LEVEL <= 10

 

결과

jrprzvyzhl

 

b. 임의의 대문자 10자리 생성

SELECT
GROUP_CONCAT(CHR((RANDOM() % 26) + 65) SEPARATOR '')
FROM db_root
CONNECT BY LEVEL <= 10

 

결과

CTNEOBSDFZ

 

c. 임의의 대소문자 10자리 생성

SELECT
 GROUP_CONCAT((DECODE(RANDOM() % 2, 0, CHR((RANDOM() % 26) + 97),
         CHR((RANDOM() % 26) + 65))) separator '')
FROM
 db_root
CONNECT BY
 LEVEL <= 10

 

결과

hCsiqCbqaT

 

d. 임의의 숫자 및 영문자 10자리 생성

SELECT
 GROUP_CONCAT((DECODE(RANDOM() % 2, 0, CHR((RANDOM() % 26) + 65),
         CHR((RANDOM() % 10) + 48))) separator '')
FROM
 db_root
CONNECT BY
 LEVEL <= 10

 

결과

0O75SFUXK2


지금까지 오라클의 DBMS_RANDOM.STRING() 함수를 CUBRID 식으로 구현하는 방법을 알아 보았습니다.

 

 

 

 

 

 

 

 

 


Articles

1 2 3 4 5 6 7 8 9 10