FIX: The value of NUMBER type is truncated when you select data from an Oracle-linked server by using OLE DB provider
Content provided by Microsoft
Applies to: Microsoft SQL Server 2012 Service Pack 2Microsoft SQL Server 2012 DeveloperMicrosoft SQL Server 2012 EnterpriseMicrosoft SQL Server 2012 StandardMicrosoft SQL Server 2014 DeveloperMicrosoft SQL Server 2014 DeveloperMicrosoft SQL Server 2014 EnterpriseMicrosoft SQL Server 2014 EnterpriseMicrosoft SQL Server 2014 StandardMicrosoft SQL Server 2014 StandardMicrosoft SQL Server 2014 Service Pack 1Microsoft SQL Server 2014 DeveloperMicrosoft SQL Server 2014 DeveloperMicrosoft SQL Server 2014 EnterpriseMicrosoft SQL Server 2014 EnterpriseMicrosoft SQL Server 2014 StandardMicrosoft SQL Server 2014 StandardMore
When you execute a query to select data from an Oracle-linked server by using OLE DB provider in Microsoft SQL Server 2012 or SQL Server 2014, the values in the NUMBER type column may be truncated in the query result.
This issue occurs because, the Oracle NUMBER type with non-declared precision/scale may not have a clear 1:1 mapping to a SQL Server data type. Before SQL Server 2012 SP2 CU2, SQL Server maps such values to strings to make sure that no loss of precision happens. However, that could lead to incorrect results if the query required sort order on such values. In SQL Server 2012 SP2 CU2, the mapping is changed to numeric (38, 0) to allow for representation of big integer keys which some database schemas are using NUMBER without precision/scale for. This leads to regressions when non-integer values are needed.
After you apply this fix, NUMBER values with unknown precision/scale are treated as double values with OLE DB provider. If the precision is important and the range of the values is not large enough, you can enable the new Trace Flag 7314 that would start treating such values as numeric (38, 10).
The issue was first fixed in the following cumulative update of SQL Server.
Each new cumulative update for SQL Server contains all the hotfixes and all the security fixes that were included with the previous cumulative update. Check out the latest cumulative updates for SQL Server:
The third-party products that this article discusses are manufactured by companies that are independent of Microsoft. Microsoft makes no warranty, implied or otherwise, about the performance or reliability of these products.
ERROR: at System.Diagnostics.Process.Kill()
at Microsoft.Support.SEOInfrastructureService.PhantomJS.PhantomJSRunner.WaitForExit(Process process, Int32 waitTime, StringBuilder dataBuilder, Boolean isTotalProcessTimeout)New URL: about:blank