oracle中, select ‘100’+2 from dual和 select to_number('100')+2 from dual;的结果都是102,为什么?

查看他们的ascii都是49?为什么?... 查看他们的ascii 都是49?为什么? 展开
 我来答
yjx_xiaoxin
2011-03-29 · TA获得超过6702个赞
知道大有可为答主
回答量:4618
采纳率:50%
帮助的人:2505万
展开全部
有些数据类型可以进行隐式转换,varchar2或char可以与number进行隐式转换,varchar2或char也可以与date类型进行隐式转换。
所以可以用字符'100'直接加2,效果与to_number('100')+2是一样的。
fengyun1853
2011-03-29
知道答主
回答量:6
采纳率:0%
帮助的人:3.7万
展开全部
先说一下,你的第二种写法是对的。至于第一种也会出现一样的结果是因为oracle有自动处理字符类型的机制。oracle会根据sql语句进行解析去改变相应的类型。前提是字符可以改变,‘100’可以改成100,但要是把a换成number类型会报ora-01722错。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fxt800627
2011-03-30 · 超过16用户采纳过TA的回答
知道答主
回答量:60
采纳率:0%
帮助的人:41.1万
展开全部
数据类型的隐式转换
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式