Oracle中如何判断字符串是否全为数字

学习了:http://www.cnblogs.com/zrcoffee/archive/2012/12/11/2812744.html

本文介绍了判断字符串是否全为数字的4种办法,另外还介绍了一个translate函数的小技巧,从任意字符串中提取数字(调用2次translate函数)。这个办法是一个公司同事发现的,用起来很方便,但理解起来稍有点困难。
1、通过ASCII码判断是否数字,介于[48, 57]之间,(ascii('0') = 48, ascii('9') = '57')
2、调用cast函数尝试强制转换成NUMERIC或NUMBER,不是合法数字串即抛异常
3、调用translate函数,剔除所有[0-9]数字后,看是否为空串
4、调用正则表达式,进行模式匹配(10g版本新加入的功能)

--通过ASCII码判断是否数字,介于[48, 57]之间,(ascii('0') = 48, ascii('9') = '57')
DECLAREstr             VARCHAR2(10) := '123a';val             NUMERIC(10);i               int;k               int;flag            BOOLEAN;
BEGINflag := TRUE;for i in 1..10 loop   --新密码是否6位数字k := ascii(substr(str, i, 1));if k < 48 or k > 57 THENflag := FALSE;end if;end LOOP;IF flag = true THENdbms_output.put_line(str || '是[0-9]的数字序列');ELSEdbms_output.put_line(str || '不是[0-9]的数字序列');END IF;
END;-- 调用cast函数尝试强制转换成NUMERIC或NUMBER,不是合法数字串即抛异常
DECLAREstr    VARCHAR2(10) := '123';val    NUMERIC(10);
BEGINval := CAST(str AS NUMERIC);dbms_output.put_line(str || '是[0-9]的数字序列');
EXCEPTIONWHEN value_error THEN -- 字符串转实数错误--dbms_output.put_line(SQLCODE || ', ' || SQLERRM);dbms_output.put_line(str || '不是[0-9]的数字序列');
END;--调用translate函数,剔除所有[0-9]数字后,看是否为空串
DECLAREstr VARCHAR2(10) := '123abc';
BEGINIF replace(translate(str, '0123456789', '0'), '0', '') IS NULL THENdbms_output.put_line(str || '是[0-9]的数字序列');ELSEdbms_output.put_line(str || '不是[0-9]的数字序列');END IF;
END;--调用正则表达式,进行模式匹配(10g版本新加入的功能)
SELECT *
FROM dual
WHERE regexp_like('1234', '^[[:digit:]]+$');--从任意字符串中提取数字串(调用2次translate函数)。
--假定初始串为str。首先将str中数字全部替换为空格,输出记为str2;
--其次,对每个在str中出现的任意str2串中字符,如果是str2的首字符则替换为空格,其它字符则全部剔除
DECLARE--str    VARCHAR2(100) := ' 护照01浙江2     3昆 山4苏 3';str    VARCHAR2(100) := ' 护照浙江     昆 山苏 4';ret    VARCHAR2(10);
BEGINret := TRIM(TRANSLATE(str, trim(TRANSLATE(str, '1234567890', '          ')), ' '));dbms_output.put_line(ret);
END;

转载于:https://www.cnblogs.com/stono/p/6671440.html

Oracle中如何判断字符串是否全为数字相关推荐

  1. C++ 判断字符串是否全是数字

    转自:https://www.cnblogs.com/MakeView660/p/6077371.html C++ 判断字符串是否全是数字 在实际的工作中,需要提取程序中的字符串信息,但是程序中经常将 ...

  2. python判断字符串是否全为数字 判断第一个字母是不是数字 isdigit

    str = "123456"; print (str.isdigit())str = "Runoob example....wow!!!" print (str ...

  3. 正则表达式判断字符串是否全是数字、小数点、正负号组成等

    "^\d+$" //非负整数(正整数 + 0)  "^[0-9]*[1-9][0-9]*$" //正整数  "^((-\d+)|(0+))$" ...

  4. Python判断字符串是否全是数字或者字母

    一.判断为数字 str.isnumeric() Return True if all characters in the string are numeric characters, and ther ...

  5. js 判断字符串是否全是数字

    1.可能也有小数点 var test = ['123.12', '.123', '123.', '123a']; var reg = /^[\d|\.]*$/; test.forEach((v) =& ...

  6. oracle判断字符串是不是日期,在ORACLE中如何判断一个字符串是否是一个合适的日期...

    很多时候, 我们碰到的数据库都是历史数据库, 有时就会碰到各种各样的数据不规范的情况, 在这里讨论一下日期字符串的处理. 虽然各种数据库中都有各自的日期类型, 但是因为各种各样的情况我们会碰到用字符串 ...

  7. oracle 判断数字是否连续,oracle中 如何 判断 表中字段是否为 连续的数字,例如‘3333333333',‘44444444’...

    oracle中 如何 判断 表中字段是否为 连续的数字,例如'3333333333','44444444' (2011-09-23 15:42:45) 标签: 判断 字段是否为 连续的数字 杂谈 分类 ...

  8. java中判断字符串乱码_java中如何判断字符串是否乱码

    java中如何判断字符串是否乱码 发布时间:2020-06-18 13:43:41 来源:亿速云 阅读:113 作者:鸽子 项目中有一个功能 在IE中GET方式提交会产生乱码 但有两个入口都会走这同一 ...

  9. oracle 截取 tr,oracle中实现截取字符串(substr)、查找字符串位置(instr)、替换字符串(replace)...

    (1)oracle中实现截取字符串:substr substr(string, start_position, [length]) 其中,string是元字符串,start_position为开始位置 ...

最新文章

  1. Thrift源码解析--TBinaryProtocol
  2. ASPNET服务器控件之一
  3. 微信小程序把玩(二十七)audio组件
  4. C++输出变量类型、max报错原因
  5. Mysql清空表(truncate)与删除表中数据(delete)的区别
  6. vscode 英伟达tk1_英伟达的未来,不只是GPU
  7. mysql自动获取时间列_mysql自动获取时间日期的方法
  8. php金币格式转换,php 资金格式转换函数_PHP教程
  9. HTML5 语义元素
  10. @order 注解用法
  11. 未转变者服务器怎么弄指令权限,» 未转变者 unturned管理员指令
  12. 【设计指南】避免PCB板翘,合格的工程师都会这样设计!
  13. 面条代码 vs. 馄沌代码
  14. 法国老医生和他“驱动”的摄像头们
  15. 推荐一款实用的用户画像工具--快鲸scrm
  16. python通过调用百度天气API接口获取天气信息
  17. (二)基于数据库的认证与授权
  18. 18春计算机辅助设计作业答案,18春福师《计算机辅助设计—MAYA》在线作业二答案...
  19. java wrap()_Java中的CharBuffer wrap()方法
  20. ios传智播客_如何在iOS中创建播客播放列表

热门文章

  1. Visual Studio Code 1.36 发布,结束对 Linux 32 位系统的支持
  2. 微软对 Windows 10 Mobile 的支持将于12月10日结束
  3. 如何构建React-Native图库教程
  4. oracle获取去年年份_「实战」中文检错纠错之语料获取与处理
  5. 计算机组装与维护推荐教材,计算机组装与维护(全国高等专科教育计算机类规划教材)...
  6. html5 网页宽度100,HTML5 Canvas 100%视口宽度?
  7. 如何获取集合里面的下标_集合上下极限公式的理解
  8. char* 去除后面几个字符_【算法打卡】去除重复字母
  9. java md5 utf-8_Jquery与java MD5加密不同
  10. java文件按时间排序_如何按日期在java目录中排序文件?