oracle判断是否是手机号码,oracle存储过程判断手机号码和固话
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存储过程判断手机号码和固话相关推荐
- oracle判断数据出现交叉,Oracle!你必须要知道的Knowledge points(一)
一.入门 oracle有四个用户,分别为sys.system.sysman和scott,其中sys是oracle权限最高的用户,类似于Linux 系统的root,scott是示例用户,上课就以这个用户 ...
- oracle sql循环判断语句怎么写,Oracle 非常详细的 PL/SQL入门教程,PL/SQL语法格式/循环语句/条件判断/异常处理...
PL/SQL入门教程目录 Oracle PL/SQL入门教程,PL/SQL语法格式/循环语句/条件判断/异常处理 一.PL/SQL简介 1.PL/SQL简介 1.PL/SQl是过程语言PL与结构化语言 ...
- Oracle在Pl/sql中的存储过程----zhoudianzhang
Oracle 存储过程 目录 Oracle 存储过程... 1 Oracle存储过程基础知识... 1 Oracle存储过程的基本语法... 2 关于Oracle存储过程的若干问题备忘... 4 1. ...
- Oracle如何使用PL/SQL调试存储过程
Oracle如何使用PL/SQL调试存储过程 PL/SQL中提供了[调试存储过程]的功能,可以完成存储过程的预编译与测试. 点击要调试的存储过程,右键选择TEST 如果需要查看变量,当然调试都需要.在 ...
- java判断联通手机号码_怎样判断手机号码是移动的还是联通的?
今天遇到了一个问题,给一个手机号码,怎样判断它是移动的还是联通的.我自己查了一些资料,咨询了一些朋友.不知道是否全面,想和大家研究一下.当然我指的是业务逻辑是否正确,并不是程序本身.用java实现的: ...
- 运营商最新号码段 以及 手机号码的正则表达式判断
三大运营商最新号段 移动号段: 134 135 136 137 138 139 147 150 151 152 157 158 159 178 182 183 184 187 188 联通号段: 13 ...
- oracle存储过程rowcount用法,Oracle带输入、输出参数的存储过程回来受影响的行数SQL%ROWCOUNT...
当前位置:我的异常网» SQL » Oracle带输入.输出参数的存储过程回来受影响的行数 Oracle带输入.输出参数的存储过程回来受影响的行数SQL%ROWCOUNT www.myexceptio ...
- oracle字段公式怎么执行,Oracle 在存储过程或函数中执行字符串sql PDF 下载
主要内容: 有时,我们需要在存储过程或函数中根据条件拼凑一些sql字符串语句,然后再执行拼凑后的sql字符串,如何做到呢? 参考以下代码: FUNCTION CALCULATE_TARGET_SCOR ...
- Oracle什么情况使用omf,ORACLE OMF介绍
ORACLE OMF介绍 先看Oracle 官方解释 Oracle managed file (OMF) A file that is created automatically by the Ora ...
最新文章
- vue 分享微信传参_vue 中使用微信分享接口(简单实用)
- 把java程序作为windows服务运行
- Json解析异常处理方式(JSONException: Value of type java.lang.String cannot be converted to JSONObject)...
- CountDownLatch 初识
- 【收藏】使用Docker搭建MySQL服务
- docker运行redis:windows环境运行挂载目录的正确写法、-v挂载data目录、-v挂载redis.conf配置文件以及设置访问密码
- php中id如何与删除关联,ThinkPHP查询语句与关联查询用法实例
- cmd如何刷新MySQL数据库_怎样在cmd中用命令操作MySQL数据库 需要技巧
- qt for android 图片可拉伸,qt实现九宫格布局,图片拉伸
- wetech-cms内容管理系统源码
- git commit撤销_Git 实用操作:撤销 Commit 提交
- mysql skip remarks_mysql DatabaseMetaData 获取table remarks为空的解决办法
- 虚拟存储器管理c语言_内存管理;虚拟内存
- Redis 6.0 源码阅读笔记(0) -- Redis 哈希表和字典 铺垫
- TypeError: Fetch argument has invalid type class ‘numpy.float32‘, must be a string or Tensor
- matlab频谱分析_想知道有限精度对FFT的影响?Matlab仿真看看
- BigDecimal 加减乘除计算
- 路在脚下,却不知怎么去走?
- linux monitor 命令,Process Monitor(简称Procmon)发布Linux版,附使用方法
- 1725 天黑请闭眼