상세 컨텐츠

본문 제목

Oracle 랜덤 문자열 생성

DataBase/Oracle

by 탑~! 2012. 8. 23. 14:32

본문

출처 : 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;

'DataBase > Oracle' 카테고리의 다른 글

오라클 달력과 관련해서...  (0) 2012.08.23
오라클 연단위 달력 쿼리  (0) 2012.08.23
ORA-02020: too many database links in use 에러 조치 방법  (0) 2012.08.23
Oracle Lock 확인  (0) 2012.08.11
Oracle INSERT ALL  (0) 2012.08.09

관련글 더보기