oracle判断是否为数字或数字型字符串
2016-03-07 22:38
609 查看
问题背景,to_number(...)中只能接受数字如122或数字型字符串'122',接受'aaa'会报错“无效字符”。
1.函数方法
CREATE OR
REPLACE FUNCTION IS_NUMBER(IN_PRICE
IN VARCHAR2)
RETURN NUMBER
IS
N_PRICE NUMBER;
N_IS NUMBER;
BEGIN
N_PRICE := NVL(TO_NUMBER(IN_PRICE),
0);
N_IS :=
1;
RETURN N_IS;
EXCEPTION
WHEN OTHERS
THEN
N_IS :=
0;
RETURN N_IS;
END;
SELECT *
FROM MOD_BZLSDDXX_EXCEL A
WHERE A.APP_NO_EXCEL
= '0116030725612068'
AND IS_NUMBER(a.cpgpj)
= 0
for UPDATE;
2.translate
SELECT nvl2(translate(333,'0123456789/','/'),'not number','is number') FROM dual;
1.函数方法
CREATE OR
REPLACE FUNCTION IS_NUMBER(IN_PRICE
IN VARCHAR2)
RETURN NUMBER
IS
N_PRICE NUMBER;
N_IS NUMBER;
BEGIN
N_PRICE := NVL(TO_NUMBER(IN_PRICE),
0);
N_IS :=
1;
RETURN N_IS;
EXCEPTION
WHEN OTHERS
THEN
N_IS :=
0;
RETURN N_IS;
END;
SELECT *
FROM MOD_BZLSDDXX_EXCEL A
WHERE A.APP_NO_EXCEL
= '0116030725612068'
AND IS_NUMBER(a.cpgpj)
= 0
for UPDATE;
2.translate
SELECT nvl2(translate(333,'0123456789/','/'),'not number','is number') FROM dual;
相关文章推荐
- Oracle 11g RAC客户端使用SCAN IP无法连接问题
- Oracle 11g RAC客户端使用SCAN IP无法连接问题
- ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist的原因分析
- 解决X64操作系统PL/SQL连接报错问题 make sure you have the 32 bits oracle client installed
- ORACLE基础知识
- Oracle SPM(SQL Plan Management)介绍及演示SQL
- oracle定义job执行存储过程方式
- Linux command line install Oracle Java
- Oracle存储过程执行update语句不报错不生效问题
- Oracle存储过程执行update语句不报错不生效问题
- oracle基本操作
- oracle物理DG管理-手工主备切换
- Oracle外键不加索引会引起死锁问题
- Oracle外键不加索引会引起死锁问题
- 如何使用Navicat连接Oracle
- Oracle442个应用场景------------基础应用场景
- Oracle创建触发器成功,并且编译通过,执行却出错ora-04088
- oracle执行sql文件
- oracle日期时间型timestamp的深入理解
- Linux-red hat下安装Oracle11g服务器