Domanda

Ho un numero da un database Oracle di 47306832975095894070.85314746810624532. Quando lo porto in SQL Server, certamente non mostra molte cifre. Viene visualizzato come 4.73068329750959E + 19 e il campo è definito come FLOAT.

Penso che probabilmente includa tutte le cifre significative, ma mi viene chiesto se il numero può essere memorizzato esattamente come aveva Oracle. Esiste un altro tipo di dati che memorizzerà TUTTE le cifre? Esiste un modo in SQL Server 2005 per visualizzare il numero non in esponenziale, ma mostrare tutte le cifre memorizzate?

È stato utile?

Soluzione

L'equivalente del NUMBER (p, s) il tipo di dati Oracle sul server SQL è numerico (p, s) . Nota che i valori predefiniti per p (precisione) e s (scala) non sono gli stessi su entrambe le piattaforme.

Sul server SQL, un float rappresenta un numero in virgola mobile completamente diverso, rappresentazione approssimativa di un numero. Su Oracle, l'equivalente sarebbe BINARY_DOUBLE .

Altri suggerimenti

Usa tipo di dati decimali. decimale (p, s) - p è un valore di precisione, s è un valore di scala.

invece di float, usa Decimale (38,17). Ciò dovrebbe consentirti di memorizzare il numero con la stessa precisione che avevi in ??Oracle.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top