oracle存储过程判断手机号码和固话

该Oracle存储过程用于判断输入的电话号码是手机号码还是固话,并返回相应的标识和归属地。通过正则表达式进行匹配,手机号码以1开头,固话符合特定格式。
ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

create or replace procedure get_Area_Phone(i_phoneNum   in varchar2,--传入号码
                                                 o_phoneFlag  out varchar2,--返回手机号码1,固话2,其他0
                                                 o_resultNum  out varchar2)
is
iv_province varchar2(50);
iv_phoneNum varchar2(50);
iv_count number;
iv_zipCode2 varchar2(50);
iv_zipCode varchar2(50);
v_strNum   VARCHAR2(30);
v_400_phoneNum varchar2(50);

begin
  iv_count := 0;
  o_phoneFlag := '0';

  --判断手机号码还是固话
  if REGEXP_LIKE(i_phoneNum,'^1[3458]\d{9}$') then --判断手机号码
     v_strNum  := substr(i_phoneNum,0,7);
     o_phoneFlag := '1';
     select dpn.PROVINCE_NAME into iv_province from DIC_PHONE_NUM dpn WHERE dpn.MOBILE_NUMBER = v_strNum;
  elsif REGEXP_LIKE(i_phoneNum,'^(010|02\d|0[3-9]\d{2})?\d{6,8}$') then --判断固话
     iv_zipCode2 := substr(i_phoneNum,0,2);
     o_phoneFlag := '2';
     if (iv_zipCode2 = '01' or iv_zipCode2 = '02' or iv_zipCode2 = '85') then
        if REGEXP_LIKE(substr(i_phoneNum,0,3),'^(010|852|853|02\d)$') then
           iv_zipCode := substr(i_phoneNum,0,3);
        end if;
     else
        if REGEXP_LIKE(substr(i_phoneNum,0,4),'^(0[3-9]\d{2})$') then
           iv_zipCode := substr(i_phoneNum,0,4);
        end if;
     end if;
     if iv_zipCode is not null then
        select dpn.PROVINCE_NAME into iv_province from DIC_PHONE_NUM dpn WHERE dpn.area_code = iv_zipCode  and rownum=1;
     end if;
  end if;

  if iv_province is not null then
      select dpp.phone_num into o_resultNum from dic_phone_province dpp where dpp.province=iv_province;
  end if;
  exception
   --如果查不到对应的归属地返回 公用号码
  when no_data_found then
  o_resultNum := '020';
end;

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值