Descripción de las diferencias entre los tipos de datos

Hay varias diferencias entre los tipos de datos del lenguaje de programación Java y los tipos de datos de SQL Server 2005. El controlador JDBC de Microsoft SQL Server 2005 ayuda a facilitar esas diferencias mediante varios tipos de conversiones.

Tipos de caracteres

Los tipos de datos de cadenas de caracteres de JDBC son CHAR, VARCHAR y LONGVARCHAR.

Tipo Descripción

Longitud fija

Los tipos de datos SQL Serverchar y nchar se asignan directamente al tipo CHAR de JDBC. Estos son tipos de longitud fija con relleno que proporciona el servidor en el caso de que la columna tenga habilitado SET ANSI_PADDING. El relleno siempre está habilitado para nchar, pero para char, si las columnas char del servidor no tienen relleno, éste lo agrega el controlador JDBC.

Longitud variable

Los tipos SQL Server varchar y nvarchar se asignan directamente al tipo VARCHAR de JDBC.

Long

Los tipos SQL Server text y ntext se asignan al tipo LONGVARCHAR JDBC. Estos son tipos obsoletos para SQL Server 2005, por lo que debería usar tipos de valores mayores en su lugar.

No se pueden usar los métodos update<Numeric Type> y updateObject (int, java.lang.Object) con las columnas de servidor text y ntext. No obstante, se admite el uso del método setObject con un tipo específico de conversión de caracteres en columnas text y ntext del servidor.

Tipos de cadenas binarias

Los tipos de datos de cadenas binarias de JDBC son BINARY, VARBINARY y LONGVARBINARY.

Tipo Descripción

Longitud fija

El tipo SQL Serverbinary se asigna directamente al tipo de JDBC BINARY. Es un tipo de longitud fija con relleno que proporciona el servidor en el caso de que la columna tenga habilitado SET ANSI_PADDING. Cuando las columnas char del servidor no tienen relleno, éste lo agrega el controlador JDBC.

El tipo SQL Servertimestamp es un tipo de JDBC BINARY con la longitud fija de 8 bytes.

Longitud variable

El tipo SQL Server varbinary se asigna al tipo de JDBC VARBINARY.

Long

El tipo SQL Server image se asigna al tipo de JDBC LONGVARBINARY. Éste es un tipo que SQL Server 2005 no aprueba, por lo que debería usar un tipo de valor grande en su lugar.

El tipo udt de SQL Server 2005 se asigna a JDBC como un tipo LONGBINARY.

Tipos numéricos exactos

Los tipos numéricos exactos de JDBC se asignan directamente a los tipos de SQL Server correspondientes.

Tipo Descripción

BIT

El tipo de JDBC BIT representa un bit único que puede ser 0 ó 1. Esto se asigna a un tipo bit de SQL Server.

TINYINT

El tipo de JDBC TINYINT representa un byte único. Esto se asigna a un tipo tinynt de SQL Server.

SMALLINT

El tipo SMALLINT de JDBC representa un entero con signo de 16 bits. Esto se asigna a un tipo smallint de SQL Server.

INTEGER

El tipo de JDBC INTEGER representa un entero de 32 bits con signo. Esto se asigna a un tipo int de SQL Server.

BIGINT

El tipo de JDBC BIGINT representa un entero con signo de 64 bits. Esto se asigna a un tipo bigint de SQL Server.

NUMERIC

El tipo NUMERIC de JDBC representa un valor decimal de precisión fija que contiene valores de precisión idéntica. El tipo NUMERIC se asigna al tipo numeric de SQL Server.

DECIMAL

El tipo DECIMAL de JDBC representa un valor decimal de precisión fija que contiene valores de, al menos, la precisión especificada. El tipo DECIMAL se asigna al tipo SQL Server decimal.

El tipo DECIMAL de JDBC también se asigna a los tipos money y smallmoney de SQL Server, que son tipos decimales de precisión fija almacenados en 8 y 4 bytes, respectivamente.

Tipos numéricos aproximados

Los tipos numéricos aproximados de JDBC son REAL, DOUBLE y FLOAT.

Tipo Descripción

REAL

El tipo de JDBC REAL tiene siete dígitos de precisión (precisión simple) y se asigna directamente al tipo SQL Serverreal.

DOUBLE

El tipo DOUBLE de JDBC tiene 15 dígitos de precisión (precisión doble) y se asigna directamente al tipo float de SQL Server. El tipo de JDBC FLOAT es un sinónimo de DOUBLE. Dado que puede haber confusión entre FLOAT y DOUBLE, se prefiere DOUBLE.

Tipos de fecha y hora

El tipo de JDBC TIMESTAMP se asigna a los tipos SQL Server datetime y smalldatetime. El tipo datetime se almacena en dos enteros de 4 bytes. El tipo smalldatetime contiene la misma información (fecha y hora), pero con menos precisión, en dos enteros pequeños de 2 bytes.

Nota

El tipo timestamp de SQL Server es un tipo de cadena binaria de longitud fija. No se asigna a ninguno de los tipos de tiempo de JDBC: DATE, TIME o TIMESTAMP.

Asignación de tipos personalizados

En el controlador JDBC no está incluida la característica de asignación de tipos personalizados de JDBC que emplean las interfaces SQLData para los tipos avanzados de JDBC (UDT, Struct, etc.).

Vea también

Otros recursos

Descripción de los tipos de datos del controlador JDBC