博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oracle自定义判断数据是否为数值函数
阅读量:6036 次
发布时间:2019-06-20

本文共 1213 字,大约阅读时间需要 4 分钟。

1 CREATE OR REPLACE FUNCTION isnumeric (str IN VARCHAR2) 2     RETURN NUMBER 3 IS 4     v_str VARCHAR2 (1000); 5 BEGIN 6     IF str IS NULL 7     THEN 8        RETURN 0; 9     ELSE10        v_str := translate(str, '.0123456789', '.');11 12        IF v_str = '.' OR v_str = '+.' OR v_str = '-.' OR v_str IS NULL13        THEN14           RETURN str;15        ELSE16           RETURN 0;17        END IF;18     END IF;19 END isnumeric; 一、语法:  TRANSLATE(string,from_str,to_str)  二、目的  返回将(所有出现的)from_str中的每个字符替换为to_str中的相应字符以后的string。TRANSLATE 是 REPLACE 所提供的功能的一个超集。如果 from_str 比 to_str 长,那么在 from_str 中而不在 to_str 中的额外字符将从 string 中被删除,因为它们没有相应的替换字符。to_str 不能为空。Oracle 将空字符串解释为 NULL,并且如果TRANSLATE 中的任何参数为NULL,那么结果也是 NULL。  三、示例  Sql代码 1. SELECT TRANSLATE('abcdefghij','abcdef','123456') FROM dual;  2. TRANSLATE (  3. --------------  4. 123456ghij  5.  6. SELECT TRANSLATE('abcdefghij','abcdefghij','123456') FROM dual;  7. TRANSL  8. ----------  9. 123456  语法:TRANSLATE(expr,from,to) expr: 代表一串字符,from 与 to 是从左到右一一对应的关系,如果不能对应,则视为空值。 举例: select translate('abcbbaadef','ba','#@') from dual (b将被#替代,a将被@替代) select translate('abcbbaadef','bad','#@') from dual (b将被#替代,a将被@替代,d对应的值是空值,将被移走) 因此:结果依次为:@#c##@@def 和@#c##@@ef

 

转载地址:http://bwlhx.baihongyu.com/

你可能感兴趣的文章
删除数组中的元素【指针练习,尾插法】
查看>>
xen server 存储库(sr)损坏的数据恢复方案
查看>>
数据结构基础(5) --归并排序
查看>>
【IT基础】windows核心编程整理(下)
查看>>
【IT基础】那些年,我们迷恋的cmd命令(一)
查看>>
FATAL ha.BootstrapStandby: Unable to fetch namespace information from active NN at ***
查看>>
VDI序曲十三 将RemoteApp和桌面连接部署到开始菜单
查看>>
MySQL-MongoDB开源监控利器之PMM
查看>>
常用的 Windows 键
查看>>
稳扎稳打 Silverlight 2.0 系列文章索引
查看>>
MySQL升级最佳实践
查看>>
kvm 存储
查看>>
Servlet - Upload、Download、Async、动态注册
查看>>
团队项目个人进展——Day06
查看>>
Java基础系列12:使用CallableStatement接口调用数据库中的存储过程
查看>>
使用Nginx搭建WEB服务器
查看>>
网络安全系列之二十九 NMAP的使用
查看>>
Office 2007 的定制和部署
查看>>
php打印warning日志引发的core追查
查看>>
Silverlight概要
查看>>