首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Server和iSeries之间的链接服务器是四舍五入的小数

Server和iSeries之间的链接服务器是四舍五入的小数
EN

Database Administration用户
提问于 2013-11-13 20:44:08
回答 2查看 5.7K关注 0票数 1

我们刚刚建立了一个新的Server 2008数据库,我在服务器和iSeries As400服务器之间建立了链接,我们从该链接中获取了一些数据。

我遇到的问题是,它正在舍入任何浮动数字,这是一个痛苦的问题,因为我们很多时候都在使用美元金额。

代码语言:javascript
运行
复制
select * FROM openquery(NADS, 'select CMD, 1.23 Type from CREDD')

在我们的旧服务器上,这将返回CMD列,并返回一个名为Type的列,该列自始至终都是1.23。在新服务器上,类型仅为1.00

据我所知,链接部分的设置是相同的。IBM访问Windows的设置基本上是相同的,但是不同版本之间有一些差异,我不确定。

编辑:如果这很重要,对于提供程序,我使用Microsoft提供程序作为ODBC驱动程序

Edit2:

提供程序选项相同。

链接服务器属性:

windows设置的iSeries访问似乎是相同的。

EN

回答 2

Database Administration用户

回答已采纳

发布于 2013-11-14 18:30:22

弄明白了!!

显然我们没有安装最新的服务包。我们必须安装服务包的64位版本(32位版本安装失败),当它完成时,小数出现了。

万一有人想知道:

我们使用的是“IBMOLEDBProviderforODBsforODB7.1 (07.01.0800) (64位)”和“驱动程序”作为链接服务器iAccess驱动程序。

鉴于我刚刚再次遇到这个问题,不得不再次查找服务包,下面是指向service pack下载页面的链接,所以几年后,当我再次遇到这个问题时,我会发现它更容易.

http://www-03.ibm.com/systems/power/software/i/access/windows_sp.html

票数 4
EN

Database Administration用户

发布于 2018-09-25 13:44:08

解决方案很简单:让AS400转换浮点中的值,因为iSeries提供程序应用的隐式转换几乎每次都失败。所以,非常简单:

代码语言:javascript
运行
复制
select * FROM openquery(NADS, 'select CMD, cast(1.23 as float) Type from CREDD')

通过这种方式,所有的工作都很好: 1.23也将在Server中浮动

票数 2
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/53282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档