oracle的隐式类型转换

[复制链接]
查看11 | 回复5 | 2008-11-14 14:42:19 | 显示全部楼层 |阅读模式
其实只针对于number和varchar之间的转换
好像系统只会把varchar隐式转换成number的..
有没有什么情况下会把number转换成varchar的?
回复

使用道具 举报

千问 | 2008-11-14 14:42:19 | 显示全部楼层
目标类型为 varchar2 的时候就会发生这种隐式转换.
比如:
declare
ls varchar2(10);
begin
ls := 123;
end;
这里 123 就会隐式转换成字符串 '123'
再者, 函数调用时, 参数类型申明为 varchar2, 你传入 number, 则也会发生 number => varchar2 的隐式转换.
回复

使用道具 举报

千问 | 2008-11-14 14:42:19 | 显示全部楼层
还有 字符串运算符
'ab' || 123 这个也会把数字 123 隐式转换成字符串, 因为 || 是字符串运算符.
回复

使用道具 举报

千问 | 2008-11-14 14:42:19 | 显示全部楼层
我只知道好象日期的和varchar的也有隐式转换的
回复

使用道具 举报

千问 | 2008-11-14 14:42:19 | 显示全部楼层
看下sql 参考,可以知道答案。
回复

使用道具 举报

千问 | 2008-11-14 14:42:19 | 显示全部楼层
尽量不要隐式转换,会把自己搞混的。
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行