Partager via


Présentation des différences entre les types de données

Télécharger le pilote JDBC

Il existe de nombreuses différences entre les types de données du langage de programmation Java et SQL Server. Le Pilote Microsoft JDBC pour SQL Server vous aide à maîtriser les différences entre ces différents types de conversions.

Types de caractères

Les types de données de chaîne de caractères JDBC sont CHAR, VARCHAR et LONGVARCHAR. Le pilote JDBC prend en charge l'API JDBC 4.0. Dans JDBC 4.0, les types de données de chaîne de caractères JDBC peuvent également être NCHAR, NVARCHAR et LONGNVARCHAR. Ces nouveaux types de chaînes de caractères conservent les types de caractères natifs Java au format Unicode et rendent inutiles les conversions ANSI vers Unicode ou Unicode vers ANSI.

Type Description
Longueur fixe Les types de données SQL Server char et nchar correspondent directement aux types JDBC CHAR et NCHAR. Il s’agit de types de longueur fixe avec un remplissage fourni par le serveur au cas où la colonne a SET ANSI_PADDING ON. Le remplissage est toujours activé pour nchar ; toutefois, pour char, si les colonnes char du serveur ne sont pas remplies, le pilote JDBC ajoute le remplissage.
Longueur variable Les types SQL Server varchar et nvarchar correspondent directement et respectivement aux types JDBC VARCHAR et NVARCHAR.
Long Les types SQL Server text et ntext correspondent respectivement aux types JDBC LONGVARCHAR et LONGNVARCHAR. Ces types sont déconseillés à partir de SQL Server 2005 (9.x) ; utilisez à la place des types de grande valeur, varchar(max) ou nvarchar(max) .

Les méthodes update<Type numérique> et updateObject (int, java.lang.Object) échoueront sur des colonnes serveur text et ntext. Cependant, l’utilisation de la méthode setObject avec un type de conversion de caractère spécifié est prise en charge sur les colonnes de serveur text et ntext.

Types de chaînes binaires

Les types de chaînes binaires JDBC sont BINARY, VARBINARY et LONGVARBINARY.

Type Description
Longueur fixe Le type SQL Server binary correspond directement au type JDBC BINARY. Il s'agit d'un type de longueur fixe avec une marge fournie par le serveur au cas où la colonne a SET ANSI_PADDING ON. Si les colonnes char du serveur ne disposent pas de marge, le pilote JDBC ajoute la marge.

Le type SQL Server timestamp est un type JDBC BINARY de longueur fixe de 8 octets.
Longueur variable Le type SQL Server varbinary correspond au type JDBC VARBINARY.

Le type SQL Server udt correspond au type JDBC VARBINARY.
Long Le type SQL Server image correspond au type JDBC LONGVARBINARY. Ce type est déprécié à partir de SQL Server 2005 (9.x) ; par conséquent, vous devez utiliser un type de grande valeur, varbinary(max) , à la place.

Types numériques exacts

Les types numériques exacts JDBC sont mappés directement aux types SQL Server correspondants.

Type Description
BIT Le type JDBC BIT représente un bit unique qui peut être 0 ou 1. Il correspond au type SQL Server bit.
TINYINT Le type JDBC TINYINT représente un octet unique. Il correspond au type SQL Server tinyint.
SMALLINT Le type JDBC SMALLINT représente un entier signé de 16 bits. Il correspond au type SQL Server smallint.
INTEGER Le type JDBC INTEGER représente un entier signé de 32 bits. Il correspond au type SQL Server int.
bigint Le type JDBC BIGINT représente un entier signé de 64 bits. Il correspond au type SQL Server bigint.
NUMERIC Le type JDBC NUMERIC représente une valeur décimale à précision fixe qui conserve des valeurs de précision identique. Le type NUMERIC correspond au type SQL Server numeric.
DECIMAL Le type JDBC DECIMAL représente une valeur décimale à précision fixe qui conserve au minimum des valeurs de la précision spécifiée. Le type DECIMAL correspond au type SQL Server decimal.

Le type JDBC DECIMAL correspond également aux types SQL Server money et smallmoney, qui sont des types décimaux à précision fixe spécifiques stockés respectivement sur 8 et 4 octets.

Types numériques approximatifs

Les types numériques approximatifs JDBC sont REAL, DOUBLE et FLOAT.

Type Description
real Le type JDBC REAL, d’une précision à 7 chiffres (simple précision), correspond directement au type SQL Server real.
DOUBLE Le type JDBC DOUBLE, d’une précision à 15 chiffres (double précision), correspond au type SQL Server float. Le type JDBC FLOAT est un synonyme de DOUBLE. Compte tenu de la confusion possible entre FLOAT et DOUBLE, DOUBLE est préférable.

Types de date/d'heure

Le type JDBC TIMESTAMP correspond aux types SQL Server datetime et smalldatetime. Le type datetime est stocké dans deux entiers de 4 octets. Le type smalldatetime conserve les mêmes informations (date et heure), mais avec une précision inférieure, dans deux petits entiers de 2 octets.

Notes

Le type SQL Server timestamp est un type de chaîne binaire de longueur fixe. Il ne correspond à aucun type de temps JDBC : DATE, TIME et TIMESTAMP.

Mappage de types personnalisés

La fonction de mappage de type personnalisé de JDBC qui utilise les interfaces SQLData pour les types avancés JDBC (UDT, Struct, et ainsi de suite). n'est pas implémentée dans le pilote JDBC.

Voir aussi

Présentation des types de données du pilote JDBC