본문 바로가기

db/oracle

oracle random name

반응형

oracle 랜덤 이름 조회

 

db에서 랜덤 이름, 명칭 또는 랜덤 url 생성 등등으로 사용할 경우 사용합니다.

저는 함수로 만들어 사용합니다.

 

랜덤 한글 이름 query
  • V_FIRST, V_LAST, V_LAST 배열 문자열에 나오는 단어가 랜덤으로 출력됩니다.
  • ARRAY 문자열에 문자를 더 추가하여 다양한 이름을 생성할 수 있습니다.
  • STBSTR 문자열 자르는 함수로 랜덤 V_ARR를 추가하여 랜덤 문자열을 더 늘릴 수 있습니다.
  • V_ARR를 추가하고 FN_KORNM(0,3) 숫자를 수정하여 출력 문자 수를 조절할 수입니다.
  • 아래 영문은 랜덤 7자리 출력입니다.
create or replace NONEDITIONABLE FUNCTION "FN_KORNM"
(
    V_FROM IN VARCHAR2,
    V_TO IN VARCHAR2
)
RETURN VARCHAR2
IS
    OUT_NM VARCHAR2(100);
    TYPE V_ARR IS TABLE OF VARCHAR2(10);
    V_FIRST V_ARR;
    V_LAST V_ARR;
    V_MID V_ARR;
BEGIN

    V_FIRST := V_ARR('김',   '이',    '박',    '최',    '정');
    V_MID := V_ARR('민',   '현',    '동',    '인',    '지');
    V_LAST := V_ARR('유',   '화',    '지',    '민',    '신');

    SELECT SUBSTR(V_FIRST(ROUND(DBMS_RANDOM.VALUE(1, 5), 0))||
                V_MID(ROUND(DBMS_RANDOM.VALUE(1, 5), 0))||
                V_LAST(ROUND(DBMS_RANDOM.VALUE(1, 5), 0))
                ,V_FROM,V_TO)
    INTO OUT_NM
    FROM DUAL;

    RETURN OUT_NM;
END;

 

한글 이름 조회
SELECT FN_KORNM(0,3) FROM DUAL

 

랜덤 영문 이름 7자리 query
CREATE OR REPLACE NONEDITIONABLE FUNCTION "FN_ENGNM"
(
    V_FROM IN VARCHAR2,
    V_TO IN VARCHAR2
)
RETURN VARCHAR2
IS
    OUT_NM VARCHAR2(100);
    TYPE V_ARR IS TABLE OF VARCHAR2(10);
    V_1 V_ARR;
    V_2 V_ARR;
    V_3 V_ARR;
    V_4 V_ARR;
    V_5 V_ARR;
    V_6 V_ARR;
    V_7 V_ARR;
BEGIN

    V_1 := V_ARR('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
    V_2 := V_ARR('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
    V_3 := V_ARR('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
    V_4 := V_ARR('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
    V_5 := V_ARR('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
    V_6 := V_ARR('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
    V_7 := V_ARR('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');

    SELECT SUBSTR(V_1(ROUND(DBMS_RANDOM.VALUE(1, 26), 0))||
                V_2(ROUND(DBMS_RANDOM.VALUE(1, 26), 0))||
                V_3(ROUND(DBMS_RANDOM.VALUE(1, 26), 0))||
                V_4(ROUND(DBMS_RANDOM.VALUE(1, 26), 0))||
                V_5(ROUND(DBMS_RANDOM.VALUE(1, 26), 0))||
                V_6(ROUND(DBMS_RANDOM.VALUE(1, 26), 0))||
                V_7(ROUND(DBMS_RANDOM.VALUE(1, 26), 0))
                ,V_FROM,V_TO)
                
    INTO OUT_NM
    FROM DUAL;

    RETURN OUT_NM;
END;

 

영문 이름 조회
SELECT FN_ENGNM(0,7) FROM DUAL

 

 

 

 

반응형

'db > oracle' 카테고리의 다른 글

windows oracle on/off 자동 실행  (0) 2024.06.06
oracle limit offset test query  (0) 2024.02.10
egov 4.1 oracle 연결  (2) 2024.02.08
oracle xml parsing  (0) 2024.02.06
oracle 계정 생성 및 링크연결  (0) 2023.10.25