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