检查表中因转换数字类型时出现 ORA-01722:invalid number 的方法
2012-12-18 11:01
375 查看
经常会把存放数字的字符型列转换为数字的情况,但是经常会出现 转换失败的情况,即出现ORA-01722:invalid number 错误;现在用一个函数来检测:
假设需要把第一列转换为数字型的列
select column_name1 , column_name2 ...... from test t
where trim(translate(t.column_name1,'0123456789',' ')) is not null;
这样就把那些不能转换为数字型的行找了出来;在此摘录一下 translate函数的用法:
语法:TRANSLATE(char, from, to)
用法:返回将出现在from中的每个字符替换为to中的相应字符以后的字符串。
若from比to字符串长,那么在from中比to中多出的字符将会被删除。
三个参数中有一个是空,返回值也将是空值。
SQL> SELECT TRANSLATE('2KRW229',
2 '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ',
3 '9999999999XXXXXXXXXXXXXXXXXXXXXXXXXX') AS "License"
4 FROM DUAL;
License
-------
9XXX999
某些情况下,要从一个字符串中,提取数字信息的,可以使用:
SQL> SELECT TRANSLATE('2KRW229',
2 '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ', '0123456789')
3 AS "Translate example"
4 FROM DUAL;
Tran
----
2229
假设需要把第一列转换为数字型的列
select column_name1 , column_name2 ...... from test t
where trim(translate(t.column_name1,'0123456789',' ')) is not null;
这样就把那些不能转换为数字型的行找了出来;在此摘录一下 translate函数的用法:
语法:TRANSLATE(char, from, to)
用法:返回将出现在from中的每个字符替换为to中的相应字符以后的字符串。
若from比to字符串长,那么在from中比to中多出的字符将会被删除。
三个参数中有一个是空,返回值也将是空值。
SQL> SELECT TRANSLATE('2KRW229',
2 '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ',
3 '9999999999XXXXXXXXXXXXXXXXXXXXXXXXXX') AS "License"
4 FROM DUAL;
License
-------
9XXX999
某些情况下,要从一个字符串中,提取数字信息的,可以使用:
SQL> SELECT TRANSLATE('2KRW229',
2 '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ', '0123456789')
3 AS "Translate example"
4 FROM DUAL;
Tran
----
2229
相关文章推荐
- 【问题处理】ORA-01722: invalid number (类型隐式转换)
- ORACLE隐式类型转换 ORA-01722: 无效数字
- oracle触发器 ORA-01722:invalid number 解决方法
- ORA-01722:invalid number 解决方法
- ORA-01722:invalid number 解决方法
- Number类为数字到字符串的类型转换场景定义三种方法
- ORA-01722:invalid number 解决方法
- string字符串类型转换为number数字类型
- 符串类型的数字转换整型、长整型、浮点型的方法
- 对ORA-01722 invalid number的误解[转]
- 关于EXP-00056: 遇到 ORACLE 错误 1455 ORA-01455: 转换列溢出整数数据类型 EXP-00000: 导出终止失败 的问题解决方法整理
- js将某个值转换为String字符串类型或转换为Number数字类型
- C# 控制台输入输出非字符串类型数据的方法[进制数字转换为八进制数字]
- 【Flex】Flex装载多个Module时,出现“TypeError: Error #1034: 强制转换类型失败”的解决方法
- ORA-01722: invalid number
- int类型转换成字符串和字符串转换成int类型以及在MFC静态文本框显示数字的方式方法
- Swift内置的数字类型及基本的转换方法
- ORACLE-012:oracle中纯数字的varchar2类型和number类型自动转换
- Oracle-ORA-01722 invalid number错误
- ORA-01722: invalid number