Oracle ORA-01722 错误解决
对于“ORA-01722:无效数字错误” 以前总遇到,今天又遇到了!
产生的情况:
查出的字段中,需要转化为number型的时候,比较常见。
例如 ,创建物化视图时,如果有某一个列需要转成number的时候,就很常见,
create materialized view mv_test as
select name,
to_number(zd1) zd1, -- @1
cast(zd2 as number) zd2 --@2
from abc
where to_number(zd3)=10 ; --@3
@1 为 select 中的 to_number 时出现,
@ 2为 select 中的cast 函数时出现,
@3 为where条件中,使用to_number时出现。
注意:@1 与@2中是创建物化视图或者select 创建表或者 只是查询时并全部展开时会出现。
解决方法:
1)nvl空转化为数字 , 如,to_number(nvl(z1,0)) ,cast(nvl(zd2) as number)
2) 在1方法无法解决的时候,就是存在无法转化为number的值存在,就是说该字段中存在其他类型的数据,比如字符,
这个时候,转化为varchar或varchar2或保持原数据类型, 如,cast(zd1 as varchar2(32))
相关阅读:
相关推荐
oraclemch 2020-11-06
Seandba 2020-08-16
dbasunny 2020-08-16
娜娜 2020-06-22
专注前端开发 2020-10-21
苏康申 2020-11-13
vitasfly 2020-11-12
liuyang000 2020-09-25
FellowYourHeart 2020-10-05
赵继业 2020-08-17
whyname 2020-08-16
拼命工作好好玩 2020-08-15
langyue 2020-08-15
写程序的赵童鞋 2020-08-03
Accpcjg 2020-08-02
tydldd 2020-07-30
好记忆也需烂 2020-07-28