共用方式為


瞭解資料類型差異

Java 程式語言資料類型與 SQL Server 2005 資料類型之間,存在一些差異。Microsoft SQL Server 2005 JDBC Driver 會透過各種類型的轉換,協助調解這些差異。

字元類型

JDBC 字元字串資料類型為 CHARVARCHARLONGVARCHAR

類型 描述

Fixed-length

SQL Server charnchar 資料類型會直接對應到 JDBC CHAR 類型。這些是當資料行具有 SET ANSI_PADDING ON 時,會由伺服器提供填補的固定長度類型。nchar 一定會開啟填補;至於 char,當伺服器 char 資料行未開啟填補時,JDBC 驅動程式會加入填補。

Variable-length

SQL Server varcharnvarchar 類型會直接對應到 JDBC VARCHAR 類型。

Long

SQL Server textntext 類型會對應到 JDBC LONGVARCHAR 類型。對於 SQL Server 2005 來講,這些都是已被取代的類型,因此您應該改用大數值類型。

textntext 伺服器資料行使用 update<Numeric Type>updateObject (int, java.lang.Object) 方法會失敗。不過,支援對 textntext 伺服器資料行使用 setObject 方法,並搭配指定的字元轉換類型。

二進位字串類型

JDBC 二進位字串類型為 BINARYVARBINARYLONGVARBINARY

類型 描述

Fixed-length

SQL Server binary 類型會直接對應到 JDBC BINARY 類型。這是當資料行具有 SET ANSI_PADDING ON 時,會由伺服器提供填補的固定長度類型。當伺服器 char 資料行未開啟填補時,JDBC 驅動程式會加入填補。

SQL Server timestamp 類型是固定長度為 8 個位元組的 JDBC BINARY 類型。

Variable-length

SQL Server varbinary 類型會對應到 JDBC VARBINARY 類型。

Long

SQL Server image 類型會對應到 JDBC LONGVARBINARY 類型。對於 SQL Server 2005 來講,這是已被取代的類型,因此您應該改用大數值類型。

SQL Server 2005 中的 udt 類型會將 JDBC 對應為 LONGBINARY 類型。

精確數值類型

JDBC 精確數值類型會直接對應到其相對應的 SQL Server 類型。

類型 描述

BIT

JDBC BIT 類型代表可為 0 或 1 的單一位元。這會對應到 SQL Server bit 類型。

TINYINT

DBC TINYINT 類型代表單一位元組。這會對應到 SQL Server tinyint 類型。

SMALLINT

JDBC SMALLINT 類型代表帶正負號的 16 位元整數。這會對應到 SQL Server smallint 類型。

INTEGER

JDBC INTEGER 類型代表帶正負號的 32 位元整數。這會對應到 SQL Server int 類型。

BIGINT

JDBC BIGINT 類型代表帶正負號的 64 位元整數。這會對應到 SQL Server bigint 類型。

NUMERIC

JDBC NUMERIC 類型代表固定有效位數的十進位值,此值會保留相同的有效位數。NUMERIC 類型會對應至 SQL Server numeric 類型。

DECIMAL

JDBC DECIMAL 類型代表固定有效位數的十進位值,此值至少會保留到所指定的有效位數。DECIMAL 類型會對應至 SQL Server decimal 類型。

JDBC DECIMAL 類型也會對應到 SQL Server moneysmallmoney 類型,這兩個是特定的固定有效位數 decimal 類型,分別儲存為 8 個位元組和 4 個位元組。

近似數值類型

JDBC 近似數值類型為 REALDOUBLEFLOAT

類型 描述

REAL

JDBC REAL 類型具有 7 個位數的有效位數 (單精度),並會直接對應到 SQL Server real 類型。

DOUBLE

JDBC DOUBLE 類型具有 15 個位數的有效位數 (雙精度),並會對應到 SQL Server float 類型。JDBC FLOAT 類型是 DOUBLE 的同義字。由於在 FLOATDOUBLE 之間可能會產生混淆,因此偏好使用 DOUBLE

日期時間類型

JDBC TIMESTAMP 類型會對應到 SQL Server datetimesmalldatetime 類型。datetime 類型會以兩個 4 位元組的整數儲存。smalldatetime 類型會以兩個 2 位元組的小整數來保留相同的資訊 (日期和時間),但較不精確。

注意

SQL Server timestamp 類型是固定長度的二進位字串類型。它不會對應到任何的 JDBC 時間類型:DATETIMETIMESTAMP

自訂類型對應

JDBC 驅動程式中並未實作 JDBC 自訂類型對應功能,此功能會將 SQLData 介面用於 JDBC 進階類型 (UDT、Struct 等)。

另請參閱

其他資源

瞭解 JDBC Driver 資料類型