一个屏蔽部分电话号码的函数

根据输入的号码分情况隐藏部分(4位)号码,包括3位区号固话、4位区号固话、手机号等;可以选择隐藏中间或尾部的号码。源代码如下:
CREATE OR REPLACE FUNCTION fn_telnumber_mask (
    p_telnumber IN VARCHAR2,
    p_flag IN INT -- 0 隐藏中间;1 隐藏尾部
)
    RETURN VARCHAR2
IS
BEGIN
    IF p_flag = 0
    THEN
        IF SUBSTR (p_telnumber, 1, 1) = '0' -- 固话
        THEN
            IF LENGTH (p_telnumber) = 11 -- 三位区号
            THEN
                IF SUBSTR (p_telnumber, 1, 3) IN
                      ('020',
                       '021',
                       '022',
                       '023',
                       '024',
                       '025',
                       '026',
                       '027',
                       '028',
                       '029',
                       '010'
                      )
                THEN
                    RETURN REPLACE (p_telnumber,SUBSTR (p_telnumber, 4, 4),'****');
                ELSE -- 四位区号
                    RETURN REPLACE (p_telnumber,SUBSTR (p_telnumber, 5, 4),'****');
                END IF;
            ELSE
                RETURN REPLACE (p_telnumber, SUBSTR (p_telnumber, 5, 4), '****');
            END IF;
        ELSE -- 手机号
            RETURN REPLACE (p_telnumber, SUBSTR (p_telnumber, 4, 4), '****');
        END IF;
    ELSE -- 隐藏末4位;
        RETURN REPLACE (p_telnumber, SUBSTR (p_telnumber, -4, 4), '****');
    END IF;
END fn_telnumber_mask;
/
 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值