infection...

oracle 10진수->64진수 변환 펑션 본문

Develop/DATABASE

oracle 10진수->64진수 변환 펑션

돗거노인 2014. 12. 9. 14:47
오라클 에서 10진수를 64진수로 변환하는 펑션
CREATE OR REPLACE FUNCTION decode64( a IN NUMBER ) RETURN VARCHAR2 IS   
x VARCHAR2( 10 ) := '';   
y VARCHAR2( 1 );   
z NUMBER( 2 );   
w NUMBER;   
BEGIN   
w := a;   
WHILE w > 0 LOOP  
z := w mod 64;  
SELECT DECODE(z,0,'0',1,'1',2,'2',3,'3',4,'4',5,'5',6,'6',7,'7',8,'8',9,'9',
10,'a',11,'b',12,'c',13,'d',14,'e',15,'f',16,'g',17,'h',18,'i',19,'j',
20,'k',21,'l',22,'m',23,'n',24,'o',25,'p',26,'q',27,'r',28,'s',29,'t',
30,'u',31,'v',32,'w',33,'x',34,'y',35,'z',36,'A',37,'B',38,'C',39,'D',40,'E',41,'F',42,'G',43,'H',44,'I',45,'J',
46,'K',47,'L',48,'M',49,'N',50,'O',51,'P',52,'Q',53,'R',54,'S',55,'T',
56,'U',57,'V',58,'W',59,'X',60,'Y',61,'Z',62,'#',63,'@')
INTO y   
FROM DUAL;   
w := trunc(w/64);  
x := concat(y,x);  
END LOOP;    
RETURN x;   
END decode64;

VAR result VARCHAR2;
EXECUTE :result  := decode64(64);
print result;
자알된다..

'Develop > DATABASE' 카테고리의 다른 글

oracle 에서 여러 row를 한컬럼에 출력  (0) 2015.02.24
Oracel Pageing 방법론  (0) 2014.12.16
64진수 -> 10진수 펑션  (0) 2014.12.09
mysql 사용자 등록 및 권한 설정(grant)  (0) 2014.11.03