Posts Tagged ‘double’

MS SQL Server akzeptiert double.NaN nicht

27. Juli 2012

In einem Link to SQL Ausdruck habe ich zur Laufzeit folgende Ausnahme bekommen:

The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. Parameter 5 („@p2“): The supplied value is not a valid instance of data type float. Check the source data for invalid values. An example of an invalid value is data of numeric type with scale greater than precision.

Das Problem war, dass T-SQL/MS SQL Server den Wert double.NaN (not-a-number) nicht akzeptieren. Dies ist überraschend, da es ein gültiger Fließkommawert nach IEEE 754 ist.

In dem Artikel wird das Problem ausführlich beschrieben:

http://www.codeproject.com/Tips/50340/MSSQL-doesn-t-completely-support-IEEE754-floating

Die Stellungnahme des Herstellers zum Problem und mögliche Workarounds:

https://connect.microsoft.com/SQLServer/feedback/details/239674/storing-ieee-754-floats-in-sql-server-2005-nan-infinity

Die Dokumentation zum Datentyp float schweigt sich über „Not a Number“ und „Inifity“ aus:

http://msdn.microsoft.com/en-us/library/ms173773%28v=sql.105%29.aspx