CREATE OR REPLACE FUNCTION fun_tm (i_string VARCHAR2)
RETURN VARCHAR2
AS--本函数在计算有字符且有汉字的情况下,脱敏后的字符长度可能有点偏差
v_string VARCHAR2(4000);
BEGIN
--下面是展示前面几位字符后面替换成星号的操纵
if length(i_string) <= 4 then
v_string :=replace(i_string,substr(i_string,-1,1),'*');
elsif length(i_string) between 5 and 8 then
v_string :=replace(i_string,substr(i_string,-2,2),'**');
elsif length(i_string) >=9 then
if length(i_string) = lengthb(i_string) then
v_string :=substr(i_string,1,14)||replace(rpad(i_string,trunc(length(i_string)*2-14),'*'),i_string,'');
else
v_string :=substr(i_string,1,6)||replace(rpad(i_string,trunc(lengthb(i_string)*1.5-6),'*'),i_string,'');
end if;
end if;
/*--下面是取首位各两个字符其余的替换成星号的操作
if lengthb(i_string) != le