Informatie over verschillen in gegevenstypen

JDBC-stuurprogramma downloaden

Er zijn een aantal verschillen tussen de java-programmeertaalgegevenstypen en SQL Server-gegevenstypen. Het Microsoft JDBC-stuurprogramma voor SQL Server helpt deze verschillen te vergemakkelijken door middel van verschillende typen conversies.

Tekentypen

De JDBC-tekenreeksgegevenstypen zijn CHAR, VARCHAR en LONGVARCHAR. Het JDBC-stuurprogramma biedt ondersteuning voor de JDBC 4.0-API. In de JDBC 4.0 kunnen de gegevenstypen van de JDBC-tekenreeks ook NCHAR, NVARCHAR en LONGNVARCHAR zijn. Deze nieuwe tekenreekstypen behouden systeemeigen Java-tekentypen in Unicode-indeling en verwijderen de noodzaak om ansi-naar-Unicode- of Unicode-naar-ANSI-conversie uit te voeren.

Type Description
Vaste lengte De SQL Server char en nchar gegevenstypen worden rechtstreeks toegewezen aan de JDBC CHAR en NCHAR typen. Dit zijn typen met een vaste lengte, waarbij de opvulling door de server wordt verstrekt in het geval dat de kolom SET ANSI_PADDING ON bevat. Opvulling is altijd ingeschakeld voor nchar, maar voor char, in het geval dat de server char-kolommen niet zijn opgevuld, voegt het JDBC-stuurprogramma de opvulling toe.
Variabele lengte De typen SQL Server varchar en nvarchar worden rechtstreeks toegewezen aan de JDBC VARCHAR - en NVARCHAR-typen .
Long De SQL Server text en ntext-typen komen respectievelijk overeen met het JDBC LONGVARCHAR en LONGNVARCHAR-type. Dit zijn afgeschafte typen vanaf SQL Server 2005 (9.x), dus u moet in plaats daarvan grote waardetypen, varchar(max) of nvarchar(max)gebruiken.

Het gebruik van de update<numerieke typen>- en updateObject-methoden (int, java.lang.Object) zal falen tegen tekst en ntext serverkolommen. Het gebruik van de methode setObject met een opgegeven tekenconversietype wordt echter ondersteund voor tekst en ntext serverkolommen.

Binaire tekenreekstypen

De typen binaire JDBC-tekenreeksen zijn BINARY, VARBINARY en LONGVARBINARY.

Type Description
Vaste lengte Het SQL Server binaire< /c0> type wordt rechtstreeks toegewezen aan het JDBC BINARY< /c1> type. Dit is een type met een vaste lengte met opvulling die wordt geleverd door de server in het geval dat de kolom SET ANSI_PADDING ON heeft. Wanneer de tekenkolommen van de server niet worden opgevuld, voegt het JDBC-stuurprogramma de opvulling toe.

Het type SQL Server-tijdstempel is een BINAIR JDBC-type met de vaste lengte van 8 bytes.
Variabele lengte Het SQL Server varbinary type komt overeen met het JDBC VARBINARY type.

Het udt-type in SQL Server wordt in JDBC toegewezen als het VARBINARY-type.
Long Het type SQL Server image wordt toegewezen aan het JDBC LONGVARBINARY type. Dit type is afgeschaft vanaf SQL Server 2005 (9.x), dus u moet in plaats daarvan een groot waardetype gebruiken, varbinary(max).

Exacte numerieke typen

De JDBC-exacte numerieke typen worden rechtstreeks toegewezen aan de bijbehorende SQL Server-typen.

Type Description
BIT Het JDBC BIT-type vertegenwoordigt één bit die 0 of 1 kan zijn. Dit komt overeen met een SQL Server bit-type.
TINYINT Het JDBC TINYINT-type vertegenwoordigt één byte. Het komt overeen met een SQL Server-type tinyint.
SMALLINT Het JDBC SMALLINT-type vertegenwoordigt een ondertekend 16-bits geheel getal. Dit komt overeen met een SQL Server smallint-type.
INTEGER Het type JDBC INTEGER vertegenwoordigt een ondertekend 32-bits geheel getal. Dit wordt toegewezen aan een SQL Server-int-type .
BIGINT Het type JDBC BIGINT vertegenwoordigt een ondertekend 64-bits geheel getal. Dit komt overeen met een bigint-type van SQL Server.
NUMERIEK Het JDBC-numerieke type vertegenwoordigt een decimale waarde met vaste precisie die waarden van identieke precisie bevat. Het NUMERIC-type wordt toegewezen aan het SQL Server-type numeric.
Decimaal Het JDBC DECIMAL-type vertegenwoordigt een decimale waarde met vaste precisie die waarden van ten minste de opgegeven precisie bevat. Het DECIMAL-type komt overeen met het decimal-type in SQL Server.

Het JDBC DECIMAL-type wordt ook toegewezen aan de SQL Server money en smallmoney typen, die specifieke decimale typen met vaste precisie zijn die respectievelijk in 8 en 4 bytes worden opgeslagen.

Numerieke typen bij benadering

De JDBC-numerieke typen bij benadering zijn REAL, DOUBLE en FLOAT.

Type Description
WERKELIJK Het JDBC REAL-type heeft zeven cijfers precisie (enkele precisie) en wordt rechtstreeks toegewezen aan het echte SQL Server-type.
Dubbel Het JDBC DOUBLE-type heeft een precisie van 15 cijfers (dubbele precisie) en wordt toegewezen aan het SQL Server float-type. Het JDBC FLOAT-type is een synoniem van DOUBLE. Omdat er verwarring kan zijn tussen FLOAT en DOUBLE, heeft DOUBLE de voorkeur.

Datum/tijd-typen

Het JDBC-type TIMESTAMP wordt toegewezen aan de SQL Server-typen datetime en smalldatetime. Het datum/tijd-type wordt opgeslagen in twee gehele getallen van vier bytes. Het type smalldatetime bevat dezelfde informatie (datum en tijd), maar met minder nauwkeurigheid, in twee kleine gehele getallen van twee bytes.

Opmerking

Het tijdstempeltype van SQL Server is een type binaire tekenreeks met vaste lengte. Het wordt niet toegewezen aan een van de JDBC-tijdtypen: DATUM, TIJD of TIJDSTEMPEL.

Toewijzing van aangepaste typen

De functie voor toewijzing van aangepaste typen van JDBC die gebruikmaakt van de SQLData-interfaces voor de geavanceerde JDBC-typen (UDT's, Struct, enzovoort). is niet geïmplementeerd in het JDBC-stuurprogramma.

Zie ook

Informatie over de gegevenstypen van het JDBC-stuurprogramma