nvl2函数隐式转型问题

[复制链接]
查看11 | 回复2 | 2010-3-1 11:04:58 | 显示全部楼层 |阅读模式
select prod_id ,nvl2(prod_expiry_date, prod_expiry_date+ 15 , '') from products
其中prod_expiry_date 是date型,那这句话执行的时候,
prod_expiry_date+ 15是date
'' 是字符串
这时会不会有隐式转型?原则是什么?
回复

使用道具 举报

千问 | 2010-3-1 11:04:58 | 显示全部楼层
nvl这类函数要求类型保持一致,如果类型不相符,将会直接报错,需要使用现式转换
回复

使用道具 举报

千问 | 2010-3-1 11:04:58 | 显示全部楼层
谢谢Ora-600
我今天有闲试验了下,结果如下:
nvl2(1234,1,'3') 返回1
nvl2(1234,'a',1) 返回'a'
应该是可以隐式转换的 但是如果隐式转换失败,这样就不行了:
nvl2(1234,1,'a')
总之 最好还是不要隐式转换~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行