oracle关键字脱敏 函数
手机尾号后4位**** 身份证号码后4位****
CREATE OR REPLACE FUNCTION F_tm( I_STR IN VARCHAR2)
RETURN VARCHAR2
IS
T_TMP VARCHAR2(2000);
T_LENTH NUMBER;
T_LENTH2 NUMBER;
BEGIN
IF(I_STR IS NULL) THEN RETURN I_STR; END IF;
T_LENTH:=LENGTH(I_STR)/2;
T_LENTH2:=LENGTH(I_STR)/5;
if(T_LENTH+T_LENTH2<LENGTH(I_STR)) then
T_LENTH:=T_LENTH+T_LENTH2;
end if;
if(LENGTH(I_STR)<4)then
T_LENTH:=1;
end if;
IF(LENGTH(I_STR)>0) THEN
T_TMP:=SUBSTR(I_STR,1,T_LENTH)||‘****’;
END IF;
RETURN T_TMP;
END ;
实例
select F_tm(t.mainsn)from test_01 t