首页 > 数据库 >Oracle使用存储函数效验手机号是否正确

Oracle使用存储函数效验手机号是否正确

时间:2022-11-03 09:25:45浏览次数:48  
标签:DBMS RETURN 手机号 REPLACE FAN 效验 Oracle OUTPUT LINE

CREATE OR REPLACE FUNCTION XIAOYAN_D(PHONENUMBER IN VARCHAR2) RETURN NUMBER AS
  FAN NUMBER(11);
BEGIN
  SELECT LTRIM(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(PHONENUMBER, ' ', ''), '(', ''), ')', ''), '+', ''), '-', ''),
               '860')
    INTO FAN
    FROM DUAL;  --对手机号做清洗处理
  IF LENGTH(FAN) != 11 THEN
    RETURN '';  
  ELSIF REPLACE(TRANSLATE(FAN, '0123456789', '0'), '0', '') IS NOT NULL THEN  
    DBMS_OUTPUT.PUT_LINE(FAN || '不是[0-9]的数字序列');
    RETURN '';
  ELSIF SUBSTR(FAN, 1, 3) NOT IN ('139', '138', '137', '136', '134', '135', '147', '150', '151', '152', '157', '158', '159', '172', '178','182','183','184','187','188','195','197','198',
         '130', '131', '132', '140', '145', '146', '155', '156','158', '166', '185', '186', '175', '176', '196',
         '133', '149', '153', '177', '173', '180', '181', '189', '191', '193', '199',
         '162', '165', '167', '170', '171') THEN
    DBMS_OUTPUT.PUT_LINE('前三位数字不合法:' || SUBSTR(FAN, 1, 3));  
    RETURN ''; 
  ELSE 
    DBMS_OUTPUT.PUT_LINE('合法号码');
    RETURN FAN; 
  END IF;
EXCEPTION
  WHEN OTHERS THEN  
    DBMS_OUTPUT.PUT_LINE('异常:'); 
    DBMS_OUTPUT.PUT_LINE(SQLCODE||sqlerrm); 
    RETURN ''; 
END XIAOYAN_D;

 

标签:DBMS,RETURN,手机号,REPLACE,FAN,效验,Oracle,OUTPUT,LINE
From: https://www.cnblogs.com/erguai/p/16853292.html

相关文章

  • Docker安装Oracle(简单,好用)
    Docker安装Oracle(以Oracle_11g为例)拉取oracle_11g镜像:dockerpullregistry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g运行容器1dockerrun-d-p1521:1521-......
  • Oracle创建创建清洗效验邮箱函数
    --创建清洗效验邮箱函数CREATEORREPLACEFUNCTIONXIAOYAN_Y(PHONENUMBERINVARCHAR2)RETURNVARCHAR2ASxiVARCHAR2(30);FANNUMBER(10);BEGINSELECTREPLA......
  • 实现oracle 19c pdb在cdb重启后,自动开启相应pdb
    文档课题:实现oracle19cpdb在cdb重启后,自动开启相应pdb.[oracle@dbserver~]$sql/assysdbaSQLcl:Release19.1ProductiononWedNov0214:26:192022Copyright(c)......
  • oracle_fdw安装部署(yum方式)
    环境:OS:Centos7PGDB:13.8Oralce:11.2.0.4 1.安装oralce瘦客户端参考链接(root账号下安装部署)https://www.cnblogs.com/hxlasky/p/16616404.htmlroot账号和postgres......
  • 【数据库数据恢复】HP-UX环境下误删除ORACLE数据库的数据恢复案例
    数据库恢复环境:联通海南分部信息平台,HP-UX小型机;ORACLE数据库,卷文件系统为VxFS。​数据库故障&分析:工程师误RM掉了重要ORACLE数据库,丢失了所有的数据表、UNDO、LOG等。......
  • 从文本中间提取手机号码?你不会?VLOOKUP函数,只需要1分钟搞定
    Hi,大家好,本专栏将会从零开始和大家用图文的方式,30天让你从不会到熟练使用函数,0基础开始学习Excel函数,让你喜欢上它!有兴趣的小伙伴可以持续关注我,或者在专栏进行查看学习,愿与......
  • MySQL 切换 Oracle 问题整理
    MySQL通常小写,Oracle默认大写,查询过程中需加双引号行转列。例:将字符串1,2,3转为数组。涉及中文乱码问题,需用TO_CHARSELECT ( SELECT listagg(TO_CHAR("ro......
  • Oracle中查询表结构的六种方法
    首发微信公众号:SQL数据库运维原文链接:https://mp.weixin.qq.com/s?__biz=MzI1NTQyNzg3MQ==&mid=2247485212&idx=1&sn=450e9e94fa709b5eeff0de371c62072b&chksm=ea37536cdd......
  • oracle_fdw安装部署(yum方式)
    环境:OS:Centos7DB:13.8 1.安装oralce客户端参考链接(root账号下安装部署)https://www.cnblogs.com/hxlasky/p/16616404.html 2.安装oracle_fdw我这里采用yum方式进......
  • oracle查索引大小
    文档课题:oracle查索引大小.数据库:oracle11.2.0.464位以下为实际操作过程.SQL>createtableemp_init(2idnumber(12),3namevarchar2(20),4age......