DATABASE/ORACLE
[ORACLE] 쿠폰을 생성해 보아요... ^^
WooGong Peter
2009. 3. 19. 19:29
오늘 Coupon 을 생성해야 했습니다. 쿠폰에 쿠폰 넘버를 먹여야 하는데... 훔... 오라클에서 이렇게 구현했습니다. 시리얼은 길면 길수록 중복을 차단하는데 도움이 될 것입니다. 이유는 저보다도 잘 아시겠죠?
그리곤 요로케 쓰시면 됩니다. ^^
CREATE OR REPLACE FUNCTION FN_CREATE_STRING ( FI_LENGTH IN NUMBER )RETURN VARCHAR2 AS TMPGUID VARCHAR2(50) := ''; RNDVALUE NUMBER := 0; V_COUNTER NUMBER := 0; V_STRING VARCHAR2(36) := ''; BEGIN V_STRING := '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'; FOR V_COUNTER IN 1..FI_LENGTH LOOP SELECT ROUND(DBMS_RANDOM.VALUE * 36, 0) INTO RNDVALUE FROM DUAL; TMPGUID := TMPGUID || SUBSTR(V_STRING, RNDVALUE , 1); END LOOP; RETURN TMPGUID; END FN_CREATE_STRING;
그리곤 요로케 쓰시면 됩니다. ^^
SELECT FN_CREATE_STRING(13) FROM DUAL;
Oracle 버전은 8.1.7 입니다.
행복한 하루되십시요.
woojja ))*
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
반응형