本文说明了oracle9204的cast函数转化number类型无效的问题……
oracle9204的cast函数转化number类型无效。
简单的测试如下:
sql> create table t_cast as select cast(1 as number(5)) id from dual;
表已创建。
sql> desc t_cast
名称 是否为空? 类型
--------------------------------------------- -------- ----------
id number
sql> select * from v$version;
banner
----------------------------------------------------------------
oracle9i enterprise edition release 9.2.0.4.0 - production pl/sql release 9.2.0.4.0 - production
core 9.2.0.3.0 production
tns for linux: version 9.2.0.4.0 - production
nlsrtl version 9.2.0.4.0 - production
同样的操作在10.2.0.3上结果正常:
sql> conn yangtk/yangtk@ytk已连接。
sql> create table t_cast as select cast(1 as number(5)) id from dual;
表已创建。
sql> desc t_cast
名称 是否为空? 类型
--------------------------------------------- -------- --------------
id number(5)
sql> select * from v$version;
banner
----------------------------------------------------------------
oracle database 10g enterprise edition release 10.2.0.3.0 - prod
pl/sql release 10.2.0.3.0 - production
core 10.2.0.3.0 production
tns for 32-bit windows: version 10.2.0.3.0 - production
nlsrtl version 10.2.0.3.0 - production
查询metalink发现果然是oracle的bug,详细描述参考:bug no. 3138341。受影响的版本包括8174、9104和9204,oracle在10.1.0.2中fix了这个bug。