Q&A

  • 문자형 데이타의 자동증가
안뇽하세요

저는 오라클 디비를 사용하고 있는 사람입니다. 다름이 아니오라

숫자형 데이타 즉 0001, 0002, 0003의 증가는 max + 1을 해주면 되는데 문자형

데이타는 어또게 해야 되는지 고수님의 가르침을 기다리고 있습니다.

다시말해 AAA, AAB, AAC.... AAZ, ABA, ABB, ABC... <- 요렇게 되면 될거 같은데

고수님들은 쉽게 해결하실거 같은데...^^

1  COMMENTS
  • Profile
    오라클 2001.12.28 03:44
    김영호 wrote:

    > 안뇽하세요

    > 저는 오라클 디비를 사용하고 있는 사람입니다. 다름이 아니오라

    > 숫자형 데이타 즉 0001, 0002, 0003의 증가는 max + 1을 해주면 되는데 문자형

    > 데이타는 어또게 해야 되는지 고수님의 가르침을 기다리고 있습니다.

    > 다시말해 AAA, AAB, AAC.... AAZ, ABA, ABB, ABC... <- 요렇게 되면 될거 같은데

    > 고수님들은 쉽게 해결하실거 같은데...^^



    SELECT DECODE(SIGN(TO_NUMBER(ASCII(THREE)) - 90), -1, ONE || TWO || CHR(TO_NUMBER(ASCII(THREE)) + 1),

    DECODE(SIGN(TO_NUMBER(ASCII(TWO)) - 90), -1, ONE || CHR(TO_NUMBER(ASCII(TWO)) + 1) || 'A',

    DECODE(SIGN(TO_NUMBER(ASCII(ONE)) - 90), -1, CHR(TO_NUMBER(ASCII(ONE)) + 1) || 'A' || 'A', 'EXIT')))

    INTO :ls_abc



    FROM (

    SELECT SUBSTR(SS, 1, 1) ONE,

    SUBSTR(SS, 2, 1) TWO,

    SUBSTR(SS, 3, 1) THREE

    FROM (SELECT :ls_abc SS



    FROM AB_SUNBAN_HN));

    오라클이라면 이렇게 하면 될것같기도 한데 넘 무식해서...

    위의 sql에서 ls_abc라는 변수에 값을 대입하면 증가치의 값을 대입시켜주는 겁니다.

    exit라는 변수가 리턴되면 'ZZZ'까지 순환이 모두 되었다는 겁니다.