Megosztás:


getColumns metódus (SQLServerDatabaseMetaData)

JDBC-illesztőprogram letöltése

Lekéri a megadott katalógusban elérhető táblázatoszlopok leírását.

Szemantika

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

Paraméterek

katalógus

Egy String , amely tartalmazza a katalógus nevét.

schema

Egy string , amely tartalmazza a séma névmintáját.

table

Egy String , amely tartalmazza a táblanév mintát.

Col

Egy String , amely tartalmazza az oszlopnév mintát.

Visszaadott érték

Egy SQLServerResultSet objektum.

Exceptions

SQLServerException

Megjegyzések

Ezt a getColumns metódusot a getColumns metódus határozza meg a java.sql.DatabaseMetaData interfészen.

A getColumns metódus által visszaadott eredményhalmazban a következő információkat tartalmazza:

Név Típus Description
TABLE_CAT String A katalógus neve.
TABLE_SCHEM String A táblázat séma neve.
TABLE_NAME String A tábla neve.
COLUMN_NAME String Az oszlop neve.
Adattípus smallint Az SQL adattípus a java.sql.Types-ből.
TYPE_NAME String Az adattípus neve.
COLUMN_SIZE int Az oszlop pontossága.
BUFFER_LENGTH smallint Az adatok átviteli méretét.
DECIMAL_DIGITS smallint Az oszlop mérete.
NUM_PREC_RADIX smallint Az oszlop radixja.
NULLÁZHATÓ smallint Jelzi, hogy az oszlop nullálható-e. A következő értékek egyike lehet:

columnNoNulls (0)

columnNullable (1)
MEGJEGYZÉSEK String A rovathoz kapcsolódó hozzászólások.

Jegyzet: Az SQL Server mindig null értéket ad vissza ehhez az oszlophoz.
COLUMN_DEF String Az oszlop alapértelmezett értéke.
SQL_DATA_TYPE smallint Az SQL adattípus értéke, ahogyan az megjelenik a leíró TÍPUS mezőjében. Ez az oszlop megegyezik a DATA_TYPE oszloppal, kivéve a datetime és SQL-92 intervallum adattípusokat. Ez az oszlop mindig értéket ad vissza.
SQL_DATETIME_SUB smallint Altípuskód datetime és SQL-92 intervallum adattípusokhoz. Más adattípusok esetén ez az oszlop NULL-t ad vissza.
CHAR_OCTET_LENGTH int Az oszlop maximális bájtszáma.
ORDINAL_POSITION int Az oszlop indexe a táblázatban.
IS_NULLABLE String Jelzi, hogy az oszlop engedélyezi-e null értékeket.
SS_IS_SPARSE smallint Ha az oszlop ritka oszlop, akkor ennek értéke 1; egyébként 0. 1
SS_IS_COLUMN_SET smallint Ha az oszlop a ritka column_set oszlop, akkor ez az 1 értékű; egyébként 0. 1
SS_IS_COMPUTED smallint Jelzi, hogy egy TABLE_TYPE oszlopa kiszámított oszlop. 1
IS_AUTOINCREMENT String "IGEN", ha az oszlop automatikusan növelik. "NEM", ha az oszlop nem automatikus növelés. "" (üres sor), ha az illesztővezető nem tudja megállapítani, hogy az oszlop automatikusan növelik-e. 1
SS_UDT_CATALOG_NAME String A katalógus neve, amely tartalmazza a felhasználó által definiált típust (UDT). 1
SS_UDT_SCHEMA_NAME String A séma neve, amely tartalmazza a felhasználó által definiált típust (UDT). 1
SS_UDT_ASSEMBLY_TYPE_NAME String A teljesen minősített név felhasználó által definiált típus (UDT). 1
SS_XML_SCHEMACOLLECTION_CATALOG_NAME String Az a katalógus neve, ahol egy XML séma gyűjtemény neve van meghatározva. Ha a katalógus neve nem található meg, ez a változó üres stringet tartalmaz. 1
SS_XML_SCHEMACOLLECTION_SCHEMA_NAME String Az XML séma gyűjtemény neve a séma neve. Ha a séma neve nem található meg, akkor ez egy üres láncsor. 1
SS_XML_SCHEMACOLLECTION_NAME String Egy XML sémagyűjtemény neve. Ha a név nem található meg, ez egy üres láncsor. 1
SS_DATA_TYPE tinyint Az SQL Server adattípusa, amelyet kiterjesztett tárolt eljárások használnak.

Jegyzet További információért az SQL Server által visszaadott adattípusokról lásd: "Data types (Transact-SQL)" az SQL Server Books Online oldalán.

(1) Ez az oszlop nem lesz jelen, ha SQL Server 2005 (9.x)-hez csatlakozik.

Megjegyzés:

További információért a getColumns metódus által visszaadott adatokról lásd az SQL Server Books Online "sp_columns (Transact-SQL)" című szakaszt.

A Microsoft SQL Server JDBC Driver 3.0-ban a következő viselkedésváltozásokat láthatod a korábbi JDBC illesztőgép-verziókhoz képest:

A DATA_TYPE oszlopban a következő változások szerepelnek:

SQL Server adattípus Return Type a JDBC Driver 2.0-ban (vagy ha csatlakozott SQL Server 2005 (9.x)-hez) és a kapcsolódó numerikus állandó Return Type a JDBC Driver 3.0-ban, amikor SQL Server 2008 (10.0.x) és újabb verziókhoz csatlakozik
Felhasználó által definiált típus, amely nagyobb a 8 kB-nál LONGVARBINÁRIS (-4) VARBINÁRIS (-3)
geography LONGVARBINÁRIS (-4) VARBINÁRIS (-3)
geometry LONGVARBINÁRIS (-4) VARBINÁRIS (-3)
varbinary(max) LONGVARBINÁRIS (-4) VARBINÁRIS (-3)
nvarchar(max) LONGVARCHAR (-1) vagy LONGNVARCHAR (JDBC 4) (-16) VARCHAR (12) vagy NVARCHAR (JDBC 4) (-9)
varchar(max) LONGVARCHAR (-1) VARCHAR (12)
time VARCHAR (12) vagy NVARCHAR (JDBC 4) (-9) IDŐ (-154)
date VARCHAR (12) vagy NVARCHAR (JDBC 4) (-9) DÁTUM (91)
datetime2 VARCHAR (12) vagy NVARCHAR (JDBC 4) (-9) IDŐBÉLYEG (93)
dátum-idő eltolás VARCHAR (12) vagy NVARCHAR (JDBC 4) (-9) microsoft.sql.Types.DATETIMEOFFSET (-155)

A COLUMN_SIZE oszlop a következő változásokat tartalmazza:

SQL Server adattípus Return Type a JDBC Driver 2.0-ban Return Type a JDBC Driver 3.0-ban
nvarchar(max) 1073741823 2147483647 (adatbázis metaadat)
xml 1073741823 2147483647 (adatbázis metaadat)
Felhasználó által definiált típus, amely kisebb, mint 8 kB-t vagy annak egyenlő 8 kB (eredményhalmaz és paraméter metaadat) A tárolt eljárás által visszaadott valódi méret.
time A típus string reprezentációjának karakterben terjedő hossza, feltételezve a törtmásodpercek komponens maximális engedélyezett pontosságát.
date ugyanaz, mint az idő
datetime2 ugyanaz, mint az idő
dátum-idő eltolás ugyanaz, mint az idő

A BUFFER_LENGTH oszlop a következő változást tartalmazza:

SQL Server adattípus Return Type a JDBC Driver 2.0-ban Return Type a JDBC Driver 3.0-ban
Felhasználó által definiált típus, amely nagyobb a 8 kB-nál 2147483647

A TYPE_NAME oszlop a következő változásokat tartalmazza:

SQL Server adattípus Return Type a JDBC Driver 2.0-ban Return Type a JDBC Driver 3.0-ban
varchar(max) SMS varchar
varbinary(max) kép varbinary

A DECIMAL_DIGITS oszlop a következő változásokat tartalmazza:

SQL Server típus JDBC Driver 2.0 JDBC Driver 3.0
time null 7 (vagy kisebb, ha van megadva)
date null null
datetime2 null 7 (vagy kisebb, ha van megadva)
dátum-idő eltolás null 7 (vagy kisebb, ha van megadva)

A SQL_DATA_TYPE oszlopban a következő változások szerepelnek:

SQL Server adattípus SQL Server 2008 adatérték a JDBC Driver 2.0-ban SQL Server 2008 adatérték a JDBC Driver 3.0-ban
varchar(max) -10 -9
nvarchar(max) -1 -9
xml -10 -152
Felhasználó által definiált típus, amely kisebb, mint 8 kB-t vagy annak egyenlő -3 -151
Felhasználó által definiált típus, amely nagyobb a 8 kB-nál Nem elérhető a JDBC Driver 2.0-ban -151
geography -4 -151
geometry -4 -151
Hierarchyid -4 -151
time -9 92
date -9 91
datetime2 -9 93
dátum-idő eltolás -9 -155

Example

Az alábbi példa bemutatja, hogyan lehet a getColumns módszerrel visszaküldeni az információkat a Person.Contact táblához az AdventureWorks2025 mintaadatbázisban.

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

Lásd még:

SQLServerDatabaseMetaData Methods
SQLServerDatabaseMetaData Members
SQLServerDatabaseMetaData Class