database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 40334 게시물 읽기
No. 40334
알파벳,숫자 조합 순차 채번 문의
작성자
등촌블루스(true8you)
작성일
2013-12-10 11:45
조회수
8,689

001
002
..
999
A00
A01
..
A10
..
A99
AA0
..
AZZ
B00
...
ZZZ


요로 고럼 순번 채번을 하고 싶은데요 쉽지가 않네요 ...고수님들 도움부탁드립니다. ^^;;
 
 

이 글에 대한 댓글이 총 3건 있습니다.

--시퀀스생성
CREATE SEQUENCE SEQ_HAHA
  START WITH 1
  MAXVALUE 33696
  MINVALUE 1
  CYCLE
  CACHE 10
  ORDER;
 
 
--펑션생성
CREATE OR REPLACE FUNCTION FUNC_HAHA RETURN VARCHAR2 IS
SEQ_ID NUMBER;
VAR_RTN VARCHAR2(3);
BEGIN
        SELECT TO_CHAR(SEQ_HAHA.NEXTVAL) INTO SEQ_ID FROM DUAL;
       
        IF SEQ_ID < 1000 THEN
            SELECT LPAD(SEQ_ID, 3, '0') INTO VAR_RTN FROM DUAL;
        ELSE
            SELECT DECODE(MOD(CEIL((TO_NUMBER(SEQ_ID)-999) / 36 /36), 26),1,'A',2,'B',3,'C',4,'D',5,'E',6,'F',7,'G',8,'H',9,'I',10,'J',11,'K',12,'L',13,'M',14,'N',15,'O',16,'P',17,'Q',18,'R',19,'S',20,'T',21,'U',22,'V',23,'W',24,'X',25,'Y',0,'Z')
                ||DECODE(MOD(CEIL(((TO_NUMBER(SEQ_ID)-999) /36)),36),1,'0',2,'1',3,'2',4,'3',5,'4',6,'5',7,'6',8,'7',9,'8',10,'9',11,'A',12,'B',13,'C',14,'D',15,'E',16,'F',17,'G',18,'H',19,'I',20,'J',21,'K',22,'L',23,'M',24,'N',25,'O',26,'P',27,'Q',28,'R',29,'S',30,'T',31,'U',32,'V',33,'W',34,'X',35,'Y',0,'Z')
                ||DECODE(MOD((TO_NUMBER(SEQ_ID)-999), 36),1,'0',2,'1',3,'2',4,'3',5,'4',6,'5',7,'6',8,'7',9,'8',10,'9',11,'A',12,'B',13,'C',14,'D',15,'E',16,'F',17,'G',18,'H',19,'I',20,'J',21,'K',22,'L',23,'M',24,'N',25,'O',26,'P',27,'Q',28,'R',29,'S',30,'T',31,'U',32,'V',33,'W',34,'X',35,'Y',0,'Z') AS R_VAR
                INTO VAR_RTN
            FROM DUAL;
        END IF;

   RETURN VAR_RTN;
   EXCEPTION
     WHEN NO_DATA_FOUND THEN
       RETURN('');
     WHEN OTHERS THEN
       RETURN('');
END FUNC_HAHA;
/

 


--펑션 호출
SELECT FUNC_HAHA() FROM DUAL;

박성빈(빈이님)님이 2013-12-10 17:00에 작성한 댓글입니다.
이 댓글은 2013-12-10 20:34에 마지막으로 수정되었습니다.

얼추 간단히 테스트는 해봤는데....

시퀀스랑 펑션 생성하셔서 이리저리 테스트 해보세요....

박성빈(빈이님)님이 2013-12-10 17:02에 작성한 댓글입니다.

무한사랑 감사합니다 ^^

김동준(true4you)님이 2013-12-13 14:25에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
40337데이터와 인덱스 테이블 스페이스 위치 관련입니다. [1]
조형래
2013-12-12
6019
40336[문의] 계정에 테이블스페이스 추가하는 방법 문의드립니다 [3]
임철수
2013-12-11
6112
40335시퀀스 권한 문제... [1]
김정훈
2013-12-10
6324
40334알파벳,숫자 조합 순차 채번 문의 [3]
등촌블루스
2013-12-10
8689
40332select 후 insert 질문 드립니다 [5]
진현철
2013-12-09
7008
40331계층구조 상위 집계 방법에 대하여 문의드립니다. [6]
김흥수
2013-12-06
7793
40330outter조인을 할 수 없는 커리문이라서 문의 드립니다. [11]
야간비행
2013-12-06
7842
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다