从链接服务器读取的数据在生产服务器上返回不同的数据类型

moo*_*tor 3 oracle entity-framework linked-server sql-server-2012

我有一个 SQL Server 从 SP 内的链接 Oracle 服务器获取数据。

在我的开发服务器上,EF6 坚持 SP 正在返回double其中一列的数据类型,但在 prod 中,它坚持同一列是decimal.

SQL Server 版本略有不同:

  • 产品:11.0.5582.0
  • 开发:11.0.5613.0

链接服务器的配置方式没有(明显的)差异(即我比较了 SSMS 中的连接属性)。

作为一个新功能,生产数据库在数据库中只有很少(零,偶数)行,而开发服务器有很多。我有一种感觉可能是相关的,因为我记得必须在开发过程中更改数据类型(尽管当时我并没有考虑太多)。

这里可能有什么问题?

moo*_*tor 6

观察到的行为差异是由于两台服务器之间的补丁级别不同。

根据KB3051993的分辨率,它包含在 SQL Server 2012 SP2 的累积更新 6 中):

应用此修复程序后,具有未知精度/小数位数的 NUMBER 值将被视为使用 OLE DB 提供程序的双精度值。如果精度很重要并且值的范围不够大,您可以启用新的跟踪标志 7311,它将开始将此类值视为数字 (38, 10)。