注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Memory extender

Beautiful Day..

 
 
 

日志

 
 

隐性数据类型转换 导制的错误(ORA-01722: invalid number)  

2010-08-23 17:32:06|  分类: SQL&PL/SQL |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

select 1 from dual where '2' = 2
where 条件中两个量比较时是字符转换成了数字还是数字转换成了字符?
select 1 from dual where 'a' = 2
ORA-01722: invalid number

报错说 无效的数字

难道是将'a'给to_number('a')了?

In the context of other datatypes, numeric datatypes have lower precedence than the
datetime/interval datatypes and higher precedence than character and all other
datatypes.

应该是。

注:所以还是尽可能去避免这种隐性类型转换,除非完全调查过内容,以免产生这种难以排查的错误

-----------------------------------------------------------------------------------------------------------------

后来同事执行一个SQL的时候报ORA-01722,

且有一个日期筛选条件时正常,去掉条件后报错。。

看了语句之后发现有如上的关联条件

如:T1.ID=T2.REFERENCE

其中T1.ID为Number,T2.REFERENCE为字符型,但存了数字,当有字符型数据存在且被用来关联时,就会报了如上的错误。

因为执行隐式To_number(T2.REFERENCE)的时候发生的错误。

隐性数据类型转换 - Gabriel - Gabriel
  评论这张
 
阅读(1063)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018