Sdílet prostřednictvím


Metoda getColumns (SQLServerDatabaseMetaData)

Stáhnout ovladač JDBC

Získá popis sloupců tabulky, které jsou dostupné ve specifikovaném katalogu.

Syntaxe

  
public java.sql.ResultSet getColumns(java.lang.String catalog,  
                                     java.lang.String schema,  
                                     java.lang.String table,  
                                     java.lang.String col)  

Parametry

katalog

Řetězec obsahující název katalogu.

schema

Řetězec obsahující vzor názvů schématu.

table

Řetězec obsahující vzor názvu tabulky.

průsmyk

Řetězec obsahující vzor názvů sloupců.

Návratová hodnota

A objekt SQLServerResultSet .

Exceptions

SQLServerException

Poznámky

Tato metoda getColumns je specifikována metodou getColumns v rozhraní java.sql.DatabaseMetaData.

Výsledná sada vrácená metodou getColumns bude obsahovat následující informace:

Název Typ Description
TABLE_CAT Řetězec Název katalogu.
TABLE_SCHEM Řetězec Název schématu tabulky.
TABLE_NAME Řetězec Název tabulky.
COLUMN_NAME Řetězec Název sloupku.
DATA_TYPE smallint SQL datový typ z java.sql.Types.
TYPE_NAME Řetězec Název datového typu.
COLUMN_SIZE int Přesnost sloupce.
BUFFER_LENGTH smallint Velikost přenosu dat.
DECIMAL_DIGITS smallint Měřítko sloupu.
NUM_PREC_RADIX smallint Radix sloupce.
NULLABLE smallint Označuje, zda je sloupec neplatný. Může to být jedna z následujících hodnot:

columnNoNulls (0)

columnNullable (1)
POZNÁMKY Řetězec Komentáře spojené s tímto sloupkem.

Poznámka: SQL Server vždy vrací null pro tento sloupec.
COLUMN_DEF Řetězec Výchozí hodnota sloupce.
SQL_DATA_TYPE smallint Hodnota SQL datového typu, jak se objevuje v poli TYPE v deskriptoru. Tento sloupec je stejný jako sloupec DATA_TYPE, kromě datových typů intervalů pro datetime a SQL-92. Tento sloupec vždy vrací hodnotu.
SQL_DATETIME_SUB smallint Podtyp kód pro datové typy datového času a intervalů v SQL-92. Pro jiné datové typy tento sloupec vrací NULL.
CHAR_OCTET_LENGTH int Maximální počet bajtů ve sloupci.
ORDINAL_POSITION int Index sloupce v tabulce.
IS_NULLABLE Řetězec Označuje, zda sloupec povoluje nulové hodnoty.
SS_IS_SPARSE smallint Pokud je sloupec řídký, má hodnotu 1; jinak 0. 1
SS_IS_COLUMN_SET smallint Pokud je sloupec řídkým column_set sloupcem, má hodnotu 1; jinak 0. 1
SS_IS_COMPUTED smallint Označuje, zda je sloupec v TABLE_TYPE vypočteným sloupcem. 1
IS_AUTOINCREMENT Řetězec "ANO", pokud je sloupec automaticky inkrementován. "NE", pokud sloupec není automaticky inkrementován. "" (prázdný řetězec), pokud ovladač nemůže určit, zda je sloupec automaticky inkrementován. 1
SS_UDT_CATALOG_NAME Řetězec Název katalogu, který obsahuje uživatelem definovaný typ (UDT). 1
SS_UDT_SCHEMA_NAME Řetězec Název schématu obsahujícího uživatelsky definovaný typ (UDT). 1
SS_UDT_ASSEMBLY_TYPE_NAME Řetězec Plně kvalifikovaný uživatelsky definovaný typ (UDT). 1
SS_XML_SCHEMACOLLECTION_CATALOG_NAME Řetězec Název katalogu, kde je definován název kolekce XML schématu. Pokud nelze název katalogu najít, tato proměnná obsahuje prázdný řetězec. 1
SS_XML_SCHEMACOLLECTION_SCHEMA_NAME Řetězec Název schématu, kde je definován název kolekce XML schématu. Pokud nelze najít název schématu, jedná se o prázdný řetězec. 1
SS_XML_SCHEMACOLLECTION_NAME Řetězec Název kolekce XML schémat. Pokud jméno nelze najít, jedná se o prázdný řetězec. 1
SS_DATA_TYPE tinyint Datový typ SQL Server, který používají rozšířené uložené procedury.

Poznámka Pro více informací o datových typech vracených SQL Serverem viz "Data Types (Transact-SQL)" v SQL Server Books Online.

(1) Tento sloupec nebude k dispozici, pokud se připojujete k SQL Server 2005 (9.x).

Poznámka:

Pro více informací o datech vrácených metodou getColumns viz "sp_columns (Transact-SQL)" v SQL Server Books Online.

V Microsoft SQL Server JDBC Driver 3.0 uvidíte následující změny chování oproti dřívějším verzím JDBC ovladače:

Sloupec DATA_TYPE obsahuje následující změny:

Datový typ SQL Serveru Return Type v JDBC Driver 2.0 (nebo, pokud je připojen k SQL Server 2005 (9.x)) a přidružená numerická konstanta Return Type v JDBC Driver 3.0 při připojení k SQL Server 2008 (10.0.x) a novějším verzím
uživatelem definovaný typ větší než 8 kB DLOUHOVARBINÁRNÍ (-4) VARBINÁRNÍ (-3)
geography DLOUHOVARBINÁRNÍ (-4) VARBINÁRNÍ (-3)
geometrie DLOUHOVARBINÁRNÍ (-4) VARBINÁRNÍ (-3)
varbinary(max) DLOUHOVARBINÁRNÍ (-4) VARBINÁRNÍ (-3)
nvarchar(max) LONGVARCHAR (-1) nebo LONGNVARCHAR (JDBC 4) (-16) VARCHAR (12) nebo NVARCHAR (JDBC 4) (-9)
varchar(max) LONGVARCHAR (-1) VARCHAR (12)
time VARCHAR (12) nebo NVARCHAR (JDBC 4) (-9) ČAS (-154)
date VARCHAR (12) nebo NVARCHAR (JDBC 4) (-9) DATUM (91)
datetime2 VARCHAR (12) nebo NVARCHAR (JDBC 4) (-9) ČASOVÉ RAZÍTKO (93)
datetimeoffset VARCHAR (12) nebo NVARCHAR (JDBC 4) (-9) microsoft.sql.Types.DATETIMEOFFSET (-155)

Sloupec COLUMN_SIZE má následující změny:

Datový typ SQL Serveru Typ návratu v JDBC Driver 2.0 Return Type v JDBC Driver 3.0
nvarchar(max) 1073741823 2147483647 (metadata databáze)
xml 1073741823 2147483647 (metadata databáze)
uživatelem definovaný typ menší nebo roven 8 kB 8 kB (metadata výsledků a parametrů) Skutečná velikost vrácená uloženou procedurou.
time Délka v znacích řetězcové reprezentace typu, za předpokladu maximální povolené přesnosti složky zlomkových sekund.
date Stejně jako čas
datetime2 Stejně jako čas
datetimeoffset Stejně jako čas

Sloupec BUFFER_LENGTH má následující změnu:

Datový typ SQL Serveru Typ návratu v JDBC Driver 2.0 Return Type v JDBC Driver 3.0
uživatelem definovaný typ větší než 8 kB 2147483647

Sloupec TYPE_NAME má následující změny:

Datový typ SQL Serveru Typ návratu v JDBC Driver 2.0 Return Type v JDBC Driver 3.0
varchar(max) poslat SMS Varchar
varbinary(max) bitová kopie varbinary

Sloupec DECIMAL_DIGITS má následující změny:

Typ SQL Serveru JDBC Driver 2.0 JDBC Driver 3.0
time null 7 (nebo méně, pokud je uvedeno)
date null null
datetime2 null 7 (nebo méně, pokud je uvedeno)
datetimeoffset null 7 (nebo méně, pokud je uvedeno)

Sloupec SQL_DATA_TYPE obsahuje následující změny:

Datový typ SQL Serveru SQL Server 2008 Data Value in JDBC Driver 2.0 SQL Server 2008 Data Value in JDBC Driver 3.0
varchar(max) -10 -9
nvarchar(max) -1 -9
xml -10 -152
uživatelem definovaný typ menší nebo roven 8 kB -3 -151
uživatelem definovaný typ větší než 8 kB Není dostupné v JDBC Driver 2.0 -151
geography -4 -151
geometrie -4 -151
hierarchyid -4 -151
time -9 92
date -9 91
datetime2 -9 93
datetimeoffset -9 -155

Example

Následující příklad ukazuje, jak použít metodu getColumns k vrácení informací pro tabulku Person.Contact v ukázkové databázi AdventureWorks2025.

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 {}  
   }  
}  

Viz také

SQLServerDatabaseMetaData Methods
SQLServerDatabaseMetaData Members
SQLServerDatabaseMetaData Class