Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Tra i tipi di dati del linguaggio di programmazione Java e i tipi di dati di SQL Server ci sono alcune differenze. Microsoft JDBC Driver per SQL Server consente di superare tali differenze tramite vari tipi di conversioni.
Tipi di caratteri
I tipi di dati della stringa di caratteri JDBC sono CHAR, VARCHAR e LONGVARCHAR. Il driver JDBC fornisce supporto per l'API di JDBC 4.0. In JDBC 4.0 i tipi di dati della stringa di caratteri JDBC possono essere anche NCHAR, NVARCHAR e LONGNVARCHAR. Questi nuovi tipi di stringhe di caratteri mantengono i tipi di caratteri nativi di Java in formato Unicode pertanto non richiedono più conversioni da ANSI a Unicode o viceversa.
| Tipo | Descrizione |
|---|---|
| A lunghezza fissa | I tipi di dati char e nchar di SQL Server sono mappati direttamente ai tipi CHAR e NCHAR JDBC. Si tratta di tipi a lunghezza fissa con spaziatura messi a disposizione dal server nel caso in cui la colonna presenti SET ANSI_PADDING ON. Il padding è sempre applicato a nchar, ma per char, nel caso in cui le colonne char del server non siano riempite, il driver JDBC aggiunge il padding. |
| A lunghezza variabile | I tipi varchar e nvarchar di SQL Server sono mappati direttamente ai tipi VARCHAR e NVARCHAR JDBC, rispettivamente. |
| Lungo | I tipi text e ntext di SQL Server sono mappati direttamente ai tipi LONGVARCHAR e LONGNVARCHAR JDBC, rispettivamente. Poiché si tratta di tipi deprecati a partire da SQL Server 2005 (9.x), è consigliabile usare invece i tipi valore di grandi dimensioni, varchar(max) e nvarchar(max). Non è possibile usare i metodi update<Numeric Type> e updateObject (int, java.lang.Object) sulle colonne server text e ntext. L'uso del metodo setObject con un tipo di conversione dei caratteri specifico è invece supportato per le colonne del server di tipo text e ntext. |
Tipi di stringhe binarie
I tipi per stringa binaria JDBC sono BINARY, VARBINARY e LONGVARBINARY.
| Tipo | Descrizione |
|---|---|
| A lunghezza fissa | Il tipo binary di SQL Server è mappato direttamente al tipo BINARY JDBC. Si tratta di un tipo a lunghezza fissa con spaziatura interna fornita dal server nel caso in cui la colonna abbia SET ANSI_PADDING ON. Quando le colonne char del server non sono riempite, il driver JDBC aggiunge il padding. Il tipo timestamp di SQL Server è un tipo BINARY JDBC con lunghezza fissa di 8 byte. |
| A lunghezza variabile | Il tipo varbinary di SQL Server è mappato al tipo VARBINARY JDBC. Il tipo udt di SQL Server è mappato al tipo VARBINARY JDBC. |
| Lungo | Il tipo image di SQL Server è mappato al tipo LONGVARBINARY JDBC. Poiché si tratta di un tipo deprecato a partire da SQL Server 2005 (9.x), è consigliabile usare invece un tipo valore di grandi dimensioni, varbinary(max). |
Tipi di valori numerici esatti
I tipi numerici esatti di JDBC corrispondono direttamente ai rispettivi tipi di SQL Server.
| Tipo | Descrizione |
|---|---|
| BIT | Il tipo BIT di JDBC rappresenta un singolo bit che può essere 0 o 1. Corrisponde al tipo di SQL Server bit. |
| TINYINT | Il tipo TINYINT di JDBC rappresenta un singolo byte. È mappato al tipo tinyint di SQL Server. |
| SMALLINT | Il tipo SMALLINT di JDBC rappresenta un valore intero a 16 bit con segno. È mappato al tipo smallint di SQL Server. |
| INTEGER | Il tipo INTEGER di JDBC rappresenta un valore intero a 32 bit con segno. È mappato al tipo int di SQL Server. |
| BIGINT | Il tipo BIGINT di JDBC rappresenta un valore intero a 64 bit con segno. È mappato al tipo bigint di SQL Server. |
| Numerico | Il tipo NUMERIC di JDBC rappresenta un valore decimale a precisione fissa che può contenere valori di precisione identica. Il tipo NUMERIC è mappato al tipo numeric di SQL Server. |
| DECIMAL | Il tipo DECIMAL di JDBC rappresenta un valore decimale a precisione fissa che può contenere valori pari almeno alla precisione specificata. Il tipo DECIMAL è mappato al tipo decimal di SQL Server. Il tipo DECIMAL JDBC è mappato anche ai tipi money e smallmoney di SQL Server, che sono tipi decimali a precisione fissa specifici archiviati rispettivamente in 8 e 4 byte. |
Tipi di valori numerici approssimati
I tipi numerici approssimati JDBC sono REAL, DOUBLE e FLOAT.
| Tipo | Descrizione |
|---|---|
| REAL | Il tipo REAL JDBC ha sette cifre di precisione (precisione singola) ed è mappato direttamente al tipo real di SQL Server. |
| double | Il tipo DOUBLE JDBC ha 15 cifre di precisione (precisione doppia) ed è mappato al tipo float di SQL Server. Il tipo JDBC FLOAT è sinonimo di DOUBLE. Per non creare confusione tra FLOAT e DOUBLE, è preferibile usare il tipo DOUBLE. |
Tipi di data e ora
Il tipo TIMESTAMP JDBC è mappato ai tipi datetime e smalldatetime di SQL Server. Il tipo datetime viene memorizzato in due valori interi a 4 byte. Il tipo smalldatetime contiene le stesse informazioni (data e ora), ma, essendo memorizzato in due valori small integer a 2 byte, garantisce una precisione inferiore.
Nota
Il tipo timestamp di SQL Server è un tipo stringa binario a lunghezza fissa. Non viene mappato ai tipi JDBC relativi a data e ora: DATE, TIME, or TIMESTAMP.
Mappatura dei tipi personalizzata
La funzionalità di mappatura personalizzata dei tipi di JDBC che utilizza le interfacce SQLData per i tipi avanzati JDBC (UDT, Struct e così via). non è implementata nel driver JDBC.