Oracle 랜덤 문자열 생성
출처 : http://blog.naver.com/csaiur/10044212394
--랜덤 숫자 (양수/음수)
SELECT DBMS_RANDOM.RANDOM FROM DUAL;
--랜덤 숫자 (0~1 사이)
SELECT DBMS_RANDOM.VALUE FROM DUAL;
--랜덤 숫자 (1~1000 사이)
SELECT DBMS_RANDOM.VALUE(1,1000) RANDOM FROM DUAL;
--랜덤 숫자 (천억~조-1 사이)
SELECT DBMS_RANDOM.VALUE(100000000000, 999999999999) RANDOM FROM DUAL;
--대문자 20글자 랜덤
SELECT DBMS_RANDOM.STRING('U', 20) STR FROM DUAL;
--소문자 20글자 랜덤
SELECT DBMS_RANDOM.STRING('L', 20) STR FROM DUAL;
--대문자+소문자 20글자 랜덤
SELECT DBMS_RANDOM.STRING('A', 20) STR FROM DUAL;
--대문자+숫자 20글자 랜덤
SELECT DBMS_RANDOM.STRING('X', 20) STR FROM DUAL;
--대문자+소문자+숫자+특수문자 20글자 랜덤
SELECT DBMS_RANDOM.STRING('P', 20) STR FROM DUAL;
--응용 : 1~100 사이 양의정수만 랜덤으로 가져오기
SELECT FLOOR(DBMS_RANDOM.VALUE(1,100)) FROM DUAL;
--정렬을 랜덤으로 할 경우 (DBMS_RANDOM 이용시)
--VALUE()안에는 최소,최대값이 들어가지만 넣지 않아도 됨
SELECT * FROM 테이블명 ORDER BY DBMS_RANDOM.VALUE();
SELECT * FROM 테이블명 WHERE ROWNUM < 원하는건수 + 1 ORDER BY DBMS_RANDOM.VALUE();
--정렬을 랜덤으로 할 경우 (SAMPLE() 이용시)
--SAMPLE()안의 숫자는 백분률로 만일 총 100건일때 10건만 추출함
SELECT * FROM 테이블명 SAMPLE(10);
SELECT * FROM ADM_MENU SAMPLE(원하는백분률값) WHERE ROWNUM < 원하는건수 + 1;