ITPub博客

首页 > 数据库 > Oracle > Oracle8i数据库升级到oracle10g时,Number数据类型返回应用程序一个错误值的处理

Oracle8i数据库升级到oracle10g时,Number数据类型返回应用程序一个错误值的处理

原创 Oracle 作者:gss99999 时间:2007-07-20 17:17:00 0 删除 编辑
Oracle8i数据库升级到Oracle10g,原来运行正常的程序会返回一个错误的值,表现为如果原来8i上某个表有Number数据类型的列,没有定义长度和精度,这时,包含该表的数据库升级到10g会有一下问题:在C++程序,原来返回为一个固定值的应用程序,会返回一个没有定义的值,导致应用程序不能得到正确的结果.解决办法如下所述:[@more@]

有两个办法解决改问题:

1.修改Oracle8i数据库,把其中没有定义精度的列修改为number(38).这样C++程序也可以返回正确的值.这个办法适合数据库比较小的情况.

2.升级C++应用程序端的Oracle客户端,打p3262468_9204_WINNT补丁,该补丁会升级Oracle客户端的OLE DB版本,可以解决上述问题,该补丁是升级Oracle9204客户端的,也可以用来升级8i的客户端.但是会引起8i客户端不能执行sqlplus等错误,条件允许可以考虑升级到Oracle9204客户端.

上述两种办法在下面环境测试通过:

1.数据库服务器:Oracle8.1.7.4.0,Oracle10.2.0.1.0

2.Oracle客户端:Oracle8.1.7.0.0,Oracle9.2.0.1.0

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/62484/viewspace-927266/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: insert all的用法
请登录后发表评论 登录
全部评论
  • 博文量
    14
  • 访问量
    41505