Основные сведения о различиях между типами данных
Есть целый ряд различий между типами данных языка программирования Java и типами данных SQL Server. Microsoft JDBC Driver для SQL Server помогает уменьшить значимость этих различий посредством различных преобразований.
Символьные типы
Типы данных строки символов JDBC — CHAR, VARCHAR, и LONGVARCHAR. Драйвер JDBC обеспечивает поддержку API-интерфейса JDBC 4.0. Типы данных строки символов JDBC версии 4.0 также возможны — NCHAR, NVARCHAR, and LONGNVARCHAR. Эти новые типы символьных строк поддерживают собственные символьные типы Java в формате Юникода и исключают необходимость выполнять какие-либо преобразования из ANSI в Юникод или из Юникода в ANSI.
Тип | Описание |
---|---|
Фиксированная длина | Типы данных SQL Server char и nchar сопоставляются непосредственно с типами CHAR и NCHAR. Они представляют собой типы фиксированной длины с заполнением, предоставляемым сервером, при условии, что для столбца установлено значение SET ANSI_PADDING ON . Заполнение всегда включено для nchar, а что касается char, то в случае, если на сервере заполнение для столбцов символьных типов не предусмотрено, то заполнение добавляет драйвер JDBC. |
Переменная длина | Типы SQL Server varchar и nvarchar сопоставляются непосредственно с типами VARCHAR и NVARCHAR соответственно. |
Long | Типы SQL Server text и ntext соответствуют JDBC LONGVARCHAR и LONGNVARCHAR. Эти типы являются устаревшими, начиная с версии SQL Server 2005 (9.x), поэтому вместо них следует использовать типы больших значений, varchar (max) или nvarchar (max) . При использовании методов update<Numeric Type> и updateObject (int, java.lang.Object) по отношению к серверным столбцам text и ntext произойдет сбой. Однако использование метода setObject с указанным символьным типом преобразования по отношению к серверным столбцам text и ntext поддерживается. |
Типы двоичных строк
Двоичные строковые типы JDBC BINARY, VARBINARY и LONGVARBINARY.
Тип | Описание |
---|---|
Фиксированная длина | Тип SQL Server binary сопоставляется непосредственно с типом JDBC BINARY. Это тип фиксированной длины с заполнением, предоставляемым сервером в случае, если для столбца установлено значение SET ANSI_PADDING ON. Если на сервере заполнение для столбцов символьных типов не предусмотрено, то заполнение добавляет драйвер JDBC. Тип SQL Server timestamp представляет собой тип JDBC BINARY с постоянной длиной 8 байт. |
Переменная длина | Тип SQL Server varbinary сопоставляется с типом JDBC VARBINARY. Тип udt в SQL Server сопоставляется с JDBC как тип VARBINARY. |
Long | Тип SQL Server image сопоставляется с типом JDBC LONGVARBINARY. Этот тип является устаревшим начиная с версии SQL Server 2005 (9.x), и вместо него следует использовать тип больших значений varbinary(max) . |
Точные числовые типы
Точные числовые типы JDBC непосредственно сопоставляются с аналогичными типами SQL Server.
Тип | Описание |
---|---|
BIT | Тип BIT JDBC представляет единственный бит, который может иметь значение 0 или 1. Сопоставляется с типом SQL Server bit. |
TINYINT | Тип JDBC 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 money и smallmoney, которые являются десятичными типами с фиксированной точностью, хранящимися в 8 и 4 байтах соответственно. |
Приблизительные числовые типы
Приблизительными числовыми типами JDBC являются REAL, DOUBLE и FLOAT.
Тип | Описание |
---|---|
real | Тип JDBC REAL имеет семь цифр точности (одинарная точность) и непосредственно сопоставляется с типом SQL Server real. |
DOUBLE | Тип JDBC DOUBLE имеет 15 цифр точности (двойная точность) и сопоставляется с типом SQL Server float. Тип JDBC FLOAT является синонимом DOUBLE. В связи с возможной путаницей между FLOAT и DOUBLE предпочтительным является DOUBLE. |
Типы даты и времени
Тип отметки времени JDBC TIMESTAMP сопоставляется с типами SQL Server datetime и smalldatetime. Значения типа datetime хранятся в двух четырехбайтовых целых числах. Тип smalldatetime хранит ту же информацию (дату и время), но с меньшей точностью, в двух двухбайтовых целых числах типа small.
Примечание
Тип SQL Server timestamp — это тип двоичной строки фиксированной длины. Он не сопоставляется ни с одним типом из типов JDBC, для представления времени: DATE, TIME, или TIMESTAMP.
Сопоставление пользовательских типов
Сопоставление пользовательских типов JDBC, использующее интерфейсы SQLData для усовершенствованных типов JDBC (пользовательские, типы Struct и так далее). не реализовано в драйвере JDBC.
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по