반응형

테스트를 하다보면 의례 많은 양의 데이터가 필요하다.

그럴때마다 별거 아니지만 난감하기도 하고 귀찮기도 하다.

할때마다 이 random 을 찾다 보니 이럴때 정리해야될 것 같아서 추가해 본다.

아래의 쿼리는 구루비에서 가져온 쿼리들이다.

출처 : http://www.gurubee.net/lecture/1400

DBMS_RANDOM.VALUE

  • - 랜덤한 숫자를 생성한다.
  • - Syntax : DBMS_RANDOM.VALUE(low IN NUMBER, high IN NUMBER)
  • - 파라미터 low는: 최소 범위, high는: 최대 범위 값이다.
 
 
 
 
-- 1000에서 10000만 사이의 임이의 수를 조회한다.
SELECT DBMS_RANDOM.VALUE(1000, 10000) rand FROM DUAL;
 
 
-- 아래와 같이 소수점 까지 생성되는 것을 확인 할 수 있다.
RAND
----------
5942.39469
 
 
-- 정수로만 1000에서 10000만 사이의 임이의 수를 10개를 생성해 보자 (빈칸을 채워보자)
SELECT CEIL(DBMS_RANDOM.VALUE(1000, 10000)) rand
FROM DUAL
CONNECT BY LEVEL <= 10;
 
 
-- 아래와 같이 정수가 조회되는 것을 확인 할 수 있다.
RAND
------
  7228
  3686
  8998
  5591
  ...

 

 

DBMS_RANDOM.STRING

  • - 랜덤한 문자열을 생성한다.
  • - Syntax : DBMS_RANDOM.STRING opt IN CHAR, len IN NUMBER)
  • - opt (옵션)은 아래와 같다.
  • 'u', 'U' : 대문자
  • 'l', 'L' : 소문자
  • 'a', 'A' : 대소문자 구분없는 영문자
  • 'x', 'X' : 영문자와 숫자 혼합
  • 'p', 'P' : 문자 혼합
 
 
-- WITH문을 활용해서 옵션을 한 번에 조회해 보자
WITH t AS(
    SELECT DBMS_RANDOM.STRING('U',  10) rand FROM DUAL -- 대문자
    UNION ALL
    SELECT DBMS_RANDOM.STRING('L',  10) rand  FROM DUAL -- 소문자
    UNION ALL
    SELECT DBMS_RANDOM.STRING('A',  10) rand  FROM DUAL -- 영문자
    UNION ALL
    SELECT DBMS_RANDOM.STRING('X',  10) rand FROM DUAL -- 영숫자
    UNION ALL
    SELECT DBMS_RANDOM.STRING('P',  10) rand FROM DUAL  --문자혼합
)
SELECT * FROM t;
 
 
-- 아래와 같이 랜덤한 문자열이 조회되는 것을 확인 할 수 있다.
RAND
-----------
NSBJGKKQCL
iumlemfhtd
BGycevXKpp
JVM7L9COBI
7tdKU83j@{

 

 

DBMS_RANDOM.RANDOM

  • - DBMS_RANDOM.RANDOM은 랜덤 한 숫자를 생성해 준다.
  • - 한번 실행해 보자 SELECT DBMS_RANDOM.RANDOM FROM DUAL
  • - DBMS_RANDOM.RANDOM 함수를 이용하면 데이터를 랜덤한 순서로 정렬 할 수 있다.
 
 
-- 랜덤하게 정렬하여 3개의 로우를 출력한다.
SELECT *
  FROM
     (SELECT *
        FROM emp
       ORDER BY DBMS_RANDOM.RANDOM())
 WHERE ROWNUM <= 3;
 
 
-- 위 SQL을 여러번 반복해서 실행해 보자..
  EMPNO ENAME                JOB              MGR HIREDATE        SAL       COMM     DEPTNO
------- -------------------- --------- ---------- -------- ---------- ---------- ----------
   7782 CLARK                MANAGER         7839 81/06/09       2450                    10
   7902 FORD                 ANALYST         7566 81/12/03       3000                    20
   7876 ADAMS                CLERK           7788 87/05/23       1100                    20

내가 자주 사용하는 쿼리 문

insert /*+ APPEND */ into c
select /*+ PARALLEL(a 2) */ CEIL(dbms_random.value(100,level)) B
from dual a
connect by level <= 1 * 1000000;
 

 

알고 있으면 유용한 쿼리문들이다.

 

 

 

반응형

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

[Oracle] Merge 구문 1  (0) 2015.11.12
[펌] [ORACLE] SYS_CONTEXT 및 USERENV 정리  (0) 2015.09.03
특정 컬럼만 Masking  (0) 2015.09.03
[펌] DBMS_XPLAN  (0) 2015.08.28
[펌]Index Access and Filter  (0) 2015.08.28
DBMS_RANDOM  (0) 2015.08.18
반응형

여름 휴가를 다녀왔습니다.

지리산 쌍계사에 고모의 시골집(별장??치고는 옛날집)이 있어서 저희 부모님과 저희 가족, 동생, 예비 매제랑 같이 다녀왔어요.

 

토요일 새벽 3시에 출발해야되는데, 그래도 불금을 놓일수가 없어 영화 <암살>을 봤습니다.

아...역시 전지현의 연기와 이정재...하정우까지...여기에 명품!!!조연 오달수(오달수 나오면 다 재밌는듯!!!ㅋㅋ정말 좋아요-ㅋㅋ)까지...정말 멋졌죠..

그리고 시대의 흐름까지..하아...이놈의 친일들은.....친일들을 받아주는 나라나...>_<

Whatever!!! 정말 즐겁게 관람한 만큼...다음날 새벽3시 출발 후유증이란...

어휴...

어머니가 새벽3시에 전화해서 출발한다!!!그말에 잠이 확깨서 후다닥 준비를..ㅋ

덕분에 아버지차 타고 가는 내내 자지도 못하고..멍.........

 

첫번째 도착지 통영....

다음에....

반응형

'Life' 카테고리의 다른 글

누군가에게 제안하기 전에..  (0) 2016.07.01
블로그의 의미  (0) 2016.03.14
[16.01.12] 뭐가 더 옳은 걸까..  (0) 2016.01.12
2016 병신년 늦은 새해 인사  (0) 2016.01.06
즐거운 여름휴가 (1)  (0) 2015.08.05
처음은 아니지만 블로그의 시작  (1) 2015.07.31
반응형

하아..오랜만에 블로그를 시작해 보네요..

사실 개인적인 일상 등은 Facebook 에 올릴 수 있지만..

어디까지나 나와 친한 모든이가 보기에..

나의 모든 모습을 보여주기에는 부끄럽기도 하고..

때로는 나의 모습이 왜곡 될까 그게 싫더군요..


그리고 3번째 직장이..그동안 하고 싶었던 일이라서..(그렇다고 100%는 아니고..^^;;)


공유도 하고 싶기도 하고..

정보를 저장도 해놓고 싶더군요..


예전에는 얼음동굴 블로그를 잠시 했었는데.

사실 나중에는 상업적으로 변하더군요..

그리고 깔끔하지도 않고..

2달 하다가..그만둔 후 다시 블로그를 열었네요.


초대장 주신 http://estenpark.tistory.com/ 님에게 감사의 인사 드립니다.

어떻게 아시고 보내 주셨는지...

정말 감사하고..좋은 인연이 되었으면 하네요.


얼마나 갈지 모르겠지만..

제2의 인생을 지나..

제 3장을 열은 지금...

많은 것을 공유하고 저장하고 싶네요.


갑자기 이런 말이 떠오르네요.

혼자가지말고 함께 갑시다.

반응형

'Life' 카테고리의 다른 글

누군가에게 제안하기 전에..  (0) 2016.07.01
블로그의 의미  (0) 2016.03.14
[16.01.12] 뭐가 더 옳은 걸까..  (0) 2016.01.12
2016 병신년 늦은 새해 인사  (0) 2016.01.06
즐거운 여름휴가 (1)  (0) 2015.08.05
처음은 아니지만 블로그의 시작  (1) 2015.07.31
  1. Louis.Kim 2015.07.31 15:42 신고

    아...예전에 내가 초대장 요청 했었구나...^^;;;;감사합니다~ㅋ

+ Recent posts