오늘 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 ))*
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
반응형
'DATABASE > ORACLE' 카테고리의 다른 글
[ORACLE] UPDATE...SELECT... (0) | 2010.03.19 |
---|---|
[ORACLE] Oracle Lock 해제 관련 query (0) | 2009.06.05 |
[ORACLE] Oracle .NET Provider - Data connection pooling (0) | 2009.04.02 |
[ORACLE] Oracle Developer Tools for Visual Studio .NET (0) | 2009.04.02 |
[ORACLE] SQL 기간내 날짜구하기 (0) | 2009.03.05 |