Oracle中如何判断字符串是否全为数字
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中如何判断字符串是否全为数字相关推荐
- C++ 判断字符串是否全是数字
转自:https://www.cnblogs.com/MakeView660/p/6077371.html C++ 判断字符串是否全是数字 在实际的工作中,需要提取程序中的字符串信息,但是程序中经常将 ...
- python判断字符串是否全为数字 判断第一个字母是不是数字 isdigit
str = "123456"; print (str.isdigit())str = "Runoob example....wow!!!" print (str ...
- 正则表达式判断字符串是否全是数字、小数点、正负号组成等
"^\d+$" //非负整数(正整数 + 0) "^[0-9]*[1-9][0-9]*$" //正整数 "^((-\d+)|(0+))$" ...
- Python判断字符串是否全是数字或者字母
一.判断为数字 str.isnumeric() Return True if all characters in the string are numeric characters, and ther ...
- js 判断字符串是否全是数字
1.可能也有小数点 var test = ['123.12', '.123', '123.', '123a']; var reg = /^[\d|\.]*$/; test.forEach((v) =& ...
- oracle判断字符串是不是日期,在ORACLE中如何判断一个字符串是否是一个合适的日期...
很多时候, 我们碰到的数据库都是历史数据库, 有时就会碰到各种各样的数据不规范的情况, 在这里讨论一下日期字符串的处理. 虽然各种数据库中都有各自的日期类型, 但是因为各种各样的情况我们会碰到用字符串 ...
- oracle 判断数字是否连续,oracle中 如何 判断 表中字段是否为 连续的数字,例如‘3333333333',‘44444444’...
oracle中 如何 判断 表中字段是否为 连续的数字,例如'3333333333','44444444' (2011-09-23 15:42:45) 标签: 判断 字段是否为 连续的数字 杂谈 分类 ...
- java中判断字符串乱码_java中如何判断字符串是否乱码
java中如何判断字符串是否乱码 发布时间:2020-06-18 13:43:41 来源:亿速云 阅读:113 作者:鸽子 项目中有一个功能 在IE中GET方式提交会产生乱码 但有两个入口都会走这同一 ...
- oracle 截取 tr,oracle中实现截取字符串(substr)、查找字符串位置(instr)、替换字符串(replace)...
(1)oracle中实现截取字符串:substr substr(string, start_position, [length]) 其中,string是元字符串,start_position为开始位置 ...
最新文章
- Thrift源码解析--TBinaryProtocol
- ASPNET服务器控件之一
- 微信小程序把玩(二十七)audio组件
- C++输出变量类型、max报错原因
- Mysql清空表(truncate)与删除表中数据(delete)的区别
- vscode 英伟达tk1_英伟达的未来,不只是GPU
- mysql自动获取时间列_mysql自动获取时间日期的方法
- php金币格式转换,php 资金格式转换函数_PHP教程
- HTML5 语义元素
- @order 注解用法
- 未转变者服务器怎么弄指令权限,» 未转变者 unturned管理员指令
- 【设计指南】避免PCB板翘,合格的工程师都会这样设计!
- 面条代码 vs. 馄沌代码
- 法国老医生和他“驱动”的摄像头们
- 推荐一款实用的用户画像工具--快鲸scrm
- python通过调用百度天气API接口获取天气信息
- (二)基于数据库的认证与授权
- 18春计算机辅助设计作业答案,18春福师《计算机辅助设计—MAYA》在线作业二答案...
- java wrap()_Java中的CharBuffer wrap()方法
- ios传智播客_如何在iOS中创建播客播放列表
热门文章
- Visual Studio Code 1.36 发布,结束对 Linux 32 位系统的支持
- 微软对 Windows 10 Mobile 的支持将于12月10日结束
- 如何构建React-Native图库教程
- oracle获取去年年份_「实战」中文检错纠错之语料获取与处理
- 计算机组装与维护推荐教材,计算机组装与维护(全国高等专科教育计算机类规划教材)...
- html5 网页宽度100,HTML5 Canvas 100%视口宽度?
- 如何获取集合里面的下标_集合上下极限公式的理解
- char* 去除后面几个字符_【算法打卡】去除重复字母
- java md5 utf-8_Jquery与java MD5加密不同
- java文件按时间排序_如何按日期在java目录中排序文件?