Assume that you execute a query to select data from an Oracle linked server by using a merge join in Microsoft SQL Server 2012 or SQL Server 2014. When there is a NUMBER type column that does not have a defined precision in the Oracle linked server, the query executes successfully, but some rows are missing in the result.
Note This issue only occurs if the merge join is automatically selected by SQL Server.
The issue was first fixed in the following cumulative update of SQL Server.
Cumulative Update 4 for SQL Server 2014 /en-us/help/2999197
Cumulative Update 2 for SQL Server 2012 SP2 /en-us/help/2983175
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:
To work around this issue, use a nested loops join or a hash join by using the Option command instead of the merge join.
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
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.