Oracle 判断值是否为数字的函数
2016-04-24 23:02
441 查看
Oracle 判断值是否为数字的函数
Oracle PL/SQL并没有提供一个判断值是否为数字的函数,所以我们在实际中遇到以下的问题时,常常会很郁闷。
例如有一个表,
SQL> desc userlogin
名称 是否为空?类型
----------------------------------------- ------------------------------
NAME VARCHAR2(20)
PSW VARCHAR2(20)
SQL> select * from userlogin;
NAME PSW
-------------------- --------------------
张三 123456
李四 abcdefg
钱五 abc123
想把psw为纯数字的记录找出来,就很麻烦。
为了解决这个问题,我们先建一个函数,
CREATE OR REPLACE FUNCTION ISNUMBER(MyStr VARCHAR2) RETURNNUMBER
IS
STR VARCHAR2(400);
ISNUM NUMBER;
NUM NUMBER;
BEGIN
--返回0,不是数字。1,是数字
ISNUM:=0;
STR:=TRIM(MyStr);
--如果输入值为空,就返回不是数字。
IF TRIM(STR)IS NOT NULL THEN
BEGIN
NUM:=TO_NUMBER(STR);
ISNUM:=1;
EXCEPTION
WHENINVALID_NUMBER THEN
NULL;
WHEN OTHERSTHEN
NULL;
END;
END IF;
RETURNISNUM;
END;
试一下:
SQL> select * from userlogin whereisnumber(psw)=1;
NAME PSW
-------------------- --------------------
张三 123456
相关文章推荐
- Oracle 常用命令
- oracle键、索引、约束及其区别
- 完全卸载oracle11g步骤
- Oracle 11G DataGuard 角色转换
- Oracle 交换分区
- Oracle SQL日期比较和常用日期函数
- Oracle 11G Rman备份ASM数据恢复到本地磁盘
- oracle 数据类型
- Oracle 中 decode 函数用法
- 在tomcat中配置MySQL和oracle数据库连接池的异同
- Oracle 11g 管理Oracle 集群
- Centos 6.5 安装Oracle 12C RAC
- 远程连接oracle数据库
- Oracle 索引(转)
- TimesTen可以缓存哪些版本的Oracle数据库
- ORACLE 4 SQL语句解析
- Oracle如何实现创建数据库、备份数据库及数据导出导入的一条龙操作
- dwr+oracle进行clob、blob字段插入、修改和读取
- ORACLE 数据库体系结构
- Oracle游标详解