CREATE OR REPLACE FUNCTION TRANSLATION(N NUMBER ,SOURCES IN VARCHAR2)
RETURN VARCHAR2
IS
V1 VARCHAR2(87) :='123456789abcdefjhijklmnopqrstuvwxyzABCDEFJHIJKLMNOPQRSTUVWXYZ~!@#$%^&*()_+{}[]|;:,.<>?/';
V2 VARCHAR2(87) :='ZY+XWx*wCTSRoutQPONMLcba98765KJIHJ;|][}{_)(&^vjfVUsrqp32nmFED%$#@!~zyBA/?><.,:lkjihed41';
V3 VARCHAR2(32767) :='error ! \n usge : TRANSLATION(1,''aa'') -- 加密';
BEGIN
/*这是一个加密/解密函数*/
IF(N=0) THEN
SELECT TRANSLATE(SOURCES,V1,V2) INTO V3 FROM DUAL;
ELSIF (N=1) THEN
SELECT TRANSLATE(SOURCES,V2,V1) INTO V3 FROM DUAL;
END IF;
RETURN V3;
END;
示例:
select TRANSLATION(1,'ZY+XWx'),TRANSLATION(0,'123456'),TRANSLATION(2,'123456') from dual