Sql-Server

SQL Server 和 iSeries 之間的連結伺服器是四捨五入的小數

  • January 12, 2022

我們剛剛建立了一個新的 SQL Server 2008 數據庫,我在我們的伺服器和我們從中獲取一些數據的 iSeries As400 伺服器之間建立了連結。

我遇到的問題是它正在四捨五入任何浮動數字,這很痛苦,因為我們很多時候都在處理美元金額。

select * FROM openquery(NADS, 'select CMD, 1.23 Type from CREDD')

在我們的舊伺服器上,這將返回 CMD 列,以及一個名為 Type 的列,一直到 1.23。在新的伺服器類型上只有 1.00

據我所知,連結部分設置相同。IBM i Access for Windows ODBC Setup 基本相同,但我不確定版本之間存在一些差異。

編輯:如果重要的話,對於我使用 Microsoft OLE DB Provider for ODBC Drivers 的提供程序

編輯2:

提供者選項相同

提供者選項相同

連結伺服器屬性: 在此處輸入圖像描述

iSeries Access for windows ODBC 設置似乎相同 在此處輸入圖像描述 在此處輸入圖像描述 在此處輸入圖像描述 在此處輸入圖像描述 在此處輸入圖像描述 在此處輸入圖像描述 在此處輸入圖像描述 在此處輸入圖像描述

弄清楚了!!

顯然我們沒有安裝最新的服務包。我們必須安裝 64 位版本的服務包(32 位版本安裝失敗),當它完成時,十進制數字出現了。

如果有人想知道:

我們正在使用“IBM iAccess for Windows 7.1 (07.01.0800) (64bit)”並使用“Microsoft OLE DB Provider for ODBC Drivers”作為連結伺服器 sql 驅動程序。

看到我又遇到了這個問題,又不得不再次去尋找Service Pack,這裡是Service Pack下載頁面的連結,這樣幾年後我再次遇到這個問題時,我會發現它更容易.. .

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

引用自:https://dba.stackexchange.com/questions/53282