infection...

64진수 -> 10진수 펑션 본문

Develop/DATABASE

64진수 -> 10진수 펑션

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