SQL server DBLlink to oracle gibt Zahlen als String zurück

Ich habe eine Oracle-database mit meinen data und einer SQL server-database, die die data von Oracle über DBLink erhält. Problem ist – alle Zahlen aus den Oracle-Tabellen werden am SQL server als nvarchar akzeptiert. Als Ergebnis, wenn ich versuche, die Abfrage im SQL server mit some_number_field = 0 zu filtern bekomme ich: "Konvertierung fehlgeschlagen beim Konvertieren des nvarchar-Wertes '3.141' zum datatyp int." Dies geschieht auch, wenn ich versuche, "some_number_field * 1" oder ähnliche Ausdrücke zu wählen. Irgendeine Idee ?

Heute lief ich in die gleiche Art von Problem. Es scheint, dass Oracle-Feld mit datatyp NUMBER als nvarchar angezeigt wird, wo die Abfrage über einen verknüpften server erfolgt. Allerdings NUMBER (x, y) nicht.

ZB colB ist das NUMBER-Feld aus einer Oracle View (oder Tabelle) Versuchen Sie Folgendes:

SELECT colA, CAST(colB AS DECIMAL(23,2)) colB FROM OPENQUERY(LINKED_SERVER_NAME, 'select * from myView') 

Hinweis: Die Werte von DECIMAL (xx, y) hängen natürlich von Ihren data ab. Denken Sie auch daran, wenn Ihre NUMBER-Spalte eine sich wiederholende Fraktion ist (zB 33.33333333 usw.), müssen Sie eine Runde () auf der oracleseite platzieren, sonst wird das CAST einen Fehler auslösen.