Sintomi
Quando si esegue una query per selezionare dati da un server collegato a Oracle tramite il provider OLE DB in Microsoft SQL Server 2012 o SQL Server 2014, i valori nella colonna tipo di numero potrebbero essere troncati nel risultato della query.
Causa
Questo problema si verifica perché il tipo di numero Oracle con precisione/scala non dichiarata potrebbe non avere un mapping 1:1 chiaro a un tipo di dati di SQL Server. Prima di SQL Server 2012 SP2 CU2, SQL Server esegue il mapping di tali valori alle stringhe per assicurarsi che non si verificano perdite di precisione. Tuttavia, questo potrebbe determinare risultati non corretti se la query richiede l'ordinamento in base a tali valori. In SQL Server 2012 SP2 CU2 il mapping viene modificato in numeric (38,0) per consentire la rappresentazione di chiavi intere di grandi dimensioni che alcuni schemi di database usano numero senza precisione/scala per. Questo porta a regressioni quando sono necessari valori non interi.
Risoluzione
Dopo aver applicato questa correzione, i valori NUMERIci con precisione/scala sconosciuta vengono trattati come valori Double con il provider OLE DB. Se la precisione è importante e l'intervallo dei valori non è abbastanza grande, è possibile abilitare il nuovo flag di traccia 7314 per iniziare a trattare tali valori come numerici (38, 10).
Il problema è stato risolto per la prima volta nel seguente aggiornamento cumulativo di SQL Server.
Aggiornamento cumulativo 1 per SQL Server 2014 SP1 /en-us/help/3067839
Aggiornamento cumulativo 8 per SQL Server 2014 /en-us/help/3067836
Aggiornamento cumulativo 6 per SQL Server 2012 SP2 /en-us/help/3052468
Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nell'aggiornamento cumulativo precedente. Vedere gli ultimi aggiornamenti cumulativi per SQL Server:
Soluzione alternativa
Per risolvere il problema, convertire il campo Oracle da tipo numero in un tipo di dati completamente supportato da SQL Server.
Stato
Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".
I prodotti di terze parti descritti in questo articolo sono fabbricati da società indipendenti da Microsoft. Microsoft non rilascia alcuna garanzia implicita o esplicita relativa alle prestazioni o all'affidabilità di tali prodotti.