Метод getColumns (SQLServerDatabaseMetaData)
Возвращает описание столбцов таблицы, доступных в указанном каталоге.
Синтаксис
public java.sql.ResultSet getColumns(java.lang.String catalog,
java.lang.String schema,
java.lang.String table,
java.lang.String col)
Параметры
catalog
Значение типа String, содержащее имя каталога.
schema
Значение типа String, содержащее шаблон имени схемы.
table
Значение типа String, содержащее шаблон имени таблицы.
col
Значение типа String, содержащее шаблон имени столбца.
Возвращаемое значение
Объект SQLServerResultSet.
Исключения
Замечания
Этот метод getColumns определен с помощью метода getColumns в интерфейсе java.sql.DatabaseMetaData.
Результирующий набор, возвращаемый методом getColumns, включает следующие данные:
Имя. | Тип | Описание |
---|---|---|
TABLE_CAT | String | Имя каталога. |
TABLE_SCHEM | String | Имя схемы для таблицы. |
TABLE_NAME | String | Имя таблицы. |
COLUMN_NAME | String | Имя столбца. |
DATA_TYPE | smallint | Тип данных SQL из java.sql.Types. |
TYPE_NAME | String | Имя типа данных. |
COLUMN_SIZE | int | Точность столбца. |
BUFFER_LENGTH | smallint | Размер передаваемых данных. |
DECIMAL_DIGITS | smallint | Масштаб столбца. |
NUM_PREC_RADIX | smallint | Основание системы счисления столбца. |
NULLABLE | smallint | Указывает, допускает ли столбец значения NULL. Может иметь одно из следующих значений. columnNoNulls (0) columnNullable (1) |
ПРИМЕЧАНИЯ | String | Примечания, связанные со столбцом. Примечание. SQL Server всегда возвращает значение NULL для этого столбца. |
COLUMN_DEF | String | Значение по умолчанию для столбца. |
SQL_DATA_TYPE | smallint | Значение типа данных SQL в том же виде, что и в поле TYPE дескриптора. Этот столбец содержит то же значение, что и столбец DATA_TYPE, за исключением типа данных datetime и типа данных SQL-92 interval. Этот столбец всегда возвращает значение . |
SQL_DATETIME_SUB | smallint | Код подтипа для datetime и интервальных типов данных SQL-92. Для других типов данных этот столбец возвращает значение NULL. |
CHAR_OCTET_LENGTH | int | Максимальный размер столбца в байтах. |
ORDINAL_POSITION | int | Индекс столбца в таблице. |
IS_NULLABLE | String | Указывает, допускает ли столбец значения NULL. |
SS_IS_SPARSE | smallint | Если столбец является разреженным, то значение равно 1. В противном случае значение равно 0,1. |
SS_IS_COLUMN_SET | smallint | Если столбец является разреженным столбцом column_set, то значение 1. В противном случае — значение 0. 1 |
SS_IS_COMPUTED | smallint | Указывает, является ли столбец в TABLE_TYPE вычисляемым. 1 |
IS_AUTOINCREMENT | String | Значение «YES», если в столбце действует автоувеличение. Значение «NO», если в столбце не действует автоувеличение. Пустая строка («»), если драйверу не удается определить, действует ли в столбце автоувеличение. 1 |
SS_UDT_CATALOG_NAME | String | Имя каталога, содержащего определяемый пользователем тип. 1 |
SS_UDT_SCHEMA_NAME | String | Имя схемы, содержащей определяемый пользователем тип. 1 |
SS_UDT_ASSEMBLY_TYPE_NAME | String | Определяемый пользователем тип с полным именем. 1 |
SS_XML_SCHEMACOLLECTION_CATALOG_NAME | String | Имя каталога, в котором определено имя коллекции схем XML. Если не удается найти имя каталога, то эта переменная содержит пустую строку. 1 |
SS_XML_SCHEMACOLLECTION_SCHEMA_NAME | String | Имя схемы, в которой определено имя коллекции схем XML. Если не удается найти имя схемы, значением является пустая строка. 1 |
SS_XML_SCHEMACOLLECTION_NAME | String | Имя коллекции схем XML. Если не удается найти имя, значением является пустая строка. 1 |
SS_DATA_TYPE | tinyint | Тип данных SQL Server, используемый расширенными хранимыми процедурами. Дополнительные сведения о типах данных, возвращаемых SQL Server, см. в статье "Типы данных (Transact-SQL)" в электронной документации по SQL Server. |
(1) Этот столбец отсутствует, если вы подключаетесь к SQL Server 2005 (9.x).
Примечание.
Дополнительные сведения о типах данных, возвращаемых методом getColumns, см. в разделе "sp_columns (Transact-SQL)" в электронной документации по SQL Server.
В microsoft SQL Server JDBC Driver 3.0 вы увидите следующие изменения в поведении из предыдущих версий драйвера JDBC:
В столбце DATA_TYPE имеются следующие изменения.
Тип данных SQL Server | Тип возвращаемого значения в драйвере JDBC 2.0 (или при подключении к SQL Server 2005 (9.x)) и связанная числовая константа | Возвращаемый тип в JDBC Driver 3.0 при подключении к SQL Server 2008 (10.0.x) и более поздних версий |
---|---|---|
Определяемый пользователем тип размером более 8 КБ | LONGVARBINARY (-4) | VARBINARY (-3) |
география | LONGVARBINARY (-4) | VARBINARY (-3) |
geometry | LONGVARBINARY (-4) | VARBINARY (-3) |
varbinary(max) | LONGVARBINARY (-4) | VARBINARY (-3) |
nvarchar(max) | LONGVARCHAR (-1) или LONGNVARCHAR (JDBC 4) (-16) | VARCHAR (12) или NVARCHAR (JDBC 4) (-9) |
varchar(max) | LONGVARCHAR (-1) | VARCHAR (12) |
Время | VARCHAR (12) или NVARCHAR (JDBC 4) (-9) | TIME (-154) |
Дата | VARCHAR (12) или NVARCHAR (JDBC 4) (-9) | DATE (91) |
datetime2 | VARCHAR (12) или NVARCHAR (JDBC 4) (-9) | TIMESTAMP (93) |
datetimeoffset | VARCHAR (12) или NVARCHAR (JDBC 4) (-9) | microsoft.sql.Types.DATETIMEOFFSET (-155) |
В столбце COLUMN_SIZE выполнены следующие изменения.
Тип данных SQL Server | Тип возвращаемого значения в драйвере JDBC 2.0 | Тип возвращаемого значения в драйвере JDBC 3.0 |
---|---|---|
nvarchar(max) | 1073741823 | 2147483647 (метаданные базы данных) |
xml | 1073741823 | 2147483647 (метаданные базы данных) |
Определяемый пользователем тип размером 8 КБ и менее | 8 КБ (результирующий набор и метаданные параметров) | Фактический размер, возвращенный хранимой процедурой. |
Время | Длина строкового представления типа в символах с учетом максимально допустимой точности для долей секунды. | |
Дата | Аналогично типу time | |
datetime2 | Аналогично типу time | |
datetimeoffset | Аналогично типу time |
В столбце BUFFER_LENGTH выполнены следующие изменения.
Тип данных SQL Server | Тип возвращаемого значения в драйвере JDBC 2.0 | Тип возвращаемого значения в драйвере JDBC 3.0 |
---|---|---|
Определяемый пользователем тип размером более 8 КБ | 2147483647 |
В столбце TYPE_NAME выполнены следующие изменения.
Тип данных SQL Server | Тип возвращаемого значения в драйвере JDBC 2.0 | Тип возвращаемого значения в драйвере JDBC 3.0 |
---|---|---|
varchar(max) | text | varchar |
varbinary(max) | Изображение | varbinary |
В столбце DECIMAL_DIGITS выполнены следующие изменения.
Тип SQL Server | JDBC Driver 2.0 | JDBC Driver 3.0 |
---|---|---|
Время | null | 7 (или меньшее значение, если указано) |
Дата | null | null |
datetime2 | null | 7 (или меньшее значение, если указано) |
datetimeoffset | null | 7 (или меньшее значение, если указано) |
В столбце SQL_DATA_TYPE выполнены следующие изменения.
Тип данных SQL Server | Значение данных SQL Server 2008 в драйвере JDBC 2.0 | Значение данных SQL Server 2008 в драйвере JDBC 3.0 |
---|---|---|
varchar(max) | -10 | –9 |
nvarchar(max) | -1 | –9 |
xml | -10 | –152 |
Определяемый пользователем тип размером 8 КБ и менее | -3 | –151 |
Определяемый пользователем тип размером более 8 КБ | Недоступно в версии 2.0 драйвера JDBC | –151 |
география | -4 | –151 |
geometry | -4 | –151 |
hierarchyid | -4 | –151 |
Время | –9 | 92 |
Дата | –9 | 91 |
datetime2 | –9 | 93 |
datetimeoffset | –9 | –155 |
Пример
В следующем примере показано, как использовать метод getColumns для возврата сведений для таблицы Person.Contact в примере базы данных AdventureWorks2022.
import java.sql.*;
public class c1 {
public static void main(String[] args) {
String connectionUrl = "jdbc:sqlserver://localhost:1433;encrypt=true;databaseName=AdventureWorks;integratedsecurity=true";
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
con = DriverManager.getConnection(connectionUrl);
DatabaseMetaData dbmd = con.getMetaData();
rs = dbmd.getColumns("AdventureWorks", "Person", "Contact", "FirstName");
ResultSet r = dbmd.getColumns(null, null, "Contact", null);
ResultSetMetaData rm = r.getMetaData();
int noofcols = rm.getColumnCount();
if (r.next())
for (int i = 0 ; i < noofcols ; i++ )
System.out.println(rm.getColumnName( i + 1 ) + ": \t\t" + r.getString( i + 1 ));
}
catch (Exception e) {}
finally {}
}
}
См. также
Методы SQLServerDatabaseMetaData
Элементы SQLServerDatabaseMetaData
Класс SQLServerDatabaseMetaData