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;

oracle判断是否是手机号码,oracle存储过程判断手机号码和固话相关推荐

  1. oracle判断数据出现交叉,Oracle!你必须要知道的Knowledge points(一)

    一.入门 oracle有四个用户,分别为sys.system.sysman和scott,其中sys是oracle权限最高的用户,类似于Linux 系统的root,scott是示例用户,上课就以这个用户 ...

  2. oracle sql循环判断语句怎么写,Oracle 非常详细的 PL/SQL入门教程,PL/SQL语法格式/循环语句/条件判断/异常处理...

    PL/SQL入门教程目录 Oracle PL/SQL入门教程,PL/SQL语法格式/循环语句/条件判断/异常处理 一.PL/SQL简介 1.PL/SQL简介 1.PL/SQl是过程语言PL与结构化语言 ...

  3. Oracle在Pl/sql中的存储过程----zhoudianzhang

    Oracle 存储过程 目录 Oracle 存储过程... 1 Oracle存储过程基础知识... 1 Oracle存储过程的基本语法... 2 关于Oracle存储过程的若干问题备忘... 4 1. ...

  4. Oracle如何使用PL/SQL调试存储过程

    Oracle如何使用PL/SQL调试存储过程 PL/SQL中提供了[调试存储过程]的功能,可以完成存储过程的预编译与测试. 点击要调试的存储过程,右键选择TEST 如果需要查看变量,当然调试都需要.在 ...

  5. java判断联通手机号码_怎样判断手机号码是移动的还是联通的?

    今天遇到了一个问题,给一个手机号码,怎样判断它是移动的还是联通的.我自己查了一些资料,咨询了一些朋友.不知道是否全面,想和大家研究一下.当然我指的是业务逻辑是否正确,并不是程序本身.用java实现的: ...

  6. 运营商最新号码段 以及 手机号码的正则表达式判断

    三大运营商最新号段 移动号段: 134 135 136 137 138 139 147 150 151 152 157 158 159 178 182 183 184 187 188 联通号段: 13 ...

  7. oracle存储过程rowcount用法,Oracle带输入、输出参数的存储过程回来受影响的行数SQL%ROWCOUNT...

    当前位置:我的异常网» SQL » Oracle带输入.输出参数的存储过程回来受影响的行数 Oracle带输入.输出参数的存储过程回来受影响的行数SQL%ROWCOUNT www.myexceptio ...

  8. oracle字段公式怎么执行,Oracle 在存储过程或函数中执行字符串sql PDF 下载

    主要内容: 有时,我们需要在存储过程或函数中根据条件拼凑一些sql字符串语句,然后再执行拼凑后的sql字符串,如何做到呢? 参考以下代码: FUNCTION CALCULATE_TARGET_SCOR ...

  9. Oracle什么情况使用omf,ORACLE OMF介绍

    ORACLE OMF介绍 先看Oracle 官方解释 Oracle managed file (OMF) A file that is created automatically by the Ora ...

最新文章

  1. vue 分享微信传参_vue 中使用微信分享接口(简单实用)
  2. 把java程序作为windows服务运行
  3. Json解析异常处理方式(JSONException: Value of type java.lang.String cannot be converted to JSONObject)...
  4. CountDownLatch 初识
  5. 【收藏】使用Docker搭建MySQL服务
  6. docker运行redis:windows环境运行挂载目录的正确写法、-v挂载data目录、-v挂载redis.conf配置文件以及设置访问密码
  7. php中id如何与删除关联,ThinkPHP查询语句与关联查询用法实例
  8. cmd如何刷新MySQL数据库_怎样在cmd中用命令操作MySQL数据库 需要技巧
  9. qt for android 图片可拉伸,qt实现九宫格布局,图片拉伸
  10. wetech-cms内容管理系统源码
  11. git commit撤销_Git 实用操作:撤销 Commit 提交
  12. mysql skip remarks_mysql DatabaseMetaData 获取table remarks为空的解决办法
  13. 虚拟存储器管理c语言_内存管理;虚拟内存
  14. Redis 6.0 源码阅读笔记(0) -- Redis 哈希表和字典 铺垫
  15. TypeError: Fetch argument has invalid type class ‘numpy.float32‘, must be a string or Tensor
  16. matlab频谱分析_想知道有限精度对FFT的影响?Matlab仿真看看
  17. BigDecimal 加减乘除计算
  18. 路在脚下,却不知怎么去走?
  19. linux monitor 命令,Process Monitor(简称Procmon)发布Linux版,附使用方法
  20. 1725 天黑请闭眼

热门文章

  1. 两电源之间接0.1UF的电容起什么作用?
  2. 漫画 | 自古深情留不住,总是套路得人心!
  3. OA与BPM究竟有啥区别
  4. Ubuntu的快乐学习2——SnowBoy语音唤醒
  5. TI高精度实验室-运算放大器-第十节-运放稳定性问题
  6. 华为云大数据-助力数据价值化,释放企业发展潜能
  7. 终端APP性能测试——内存篇
  8. 关于在VS2022或者高级版本运行环境下遇到fopen,strerror等不安全的问题
  9. Word线条边框和表格的应用
  10. 计算机常见故障任务书,CAK6132A数控车床常见故障诊断与处理任务书.doc