Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
JDBC-stuurprogramma downloaden
Haalt een beschrijving op van de tabelkolommen die beschikbaar zijn in de opgegeven catalogus.
Syntaxis
public java.sql.ResultSet getColumns(java.lang.String catalog,
java.lang.String schema,
java.lang.String table,
java.lang.String col)
Parameterwaarden
catalogus
Een string die de catalogusnaam bevat.
schema
Een string die het schemanaampatroon bevat.
table
Een string die het patroon van de tabelnaam bevat.
Col
Een string die het kolomnaampatroon bevat.
Retourwaarde
Een SQLServerResultSet-object .
Exceptions
Opmerkingen
Deze getColumns-methode wordt gespecificeerd door de getColumns-methode in de java.sql.DatabaseMetaData-interface.
De resultaatset die door de getColumns-methode wordt geretourneerd, bevat de volgende informatie:
| Naam | Typologie | Description |
|---|---|---|
| TABLE_CAT | String | De catalogusnaam. |
| TABLE_SCHEM | String | De naam van het tabelschema. |
| TABLE_NAME | String | De naam van de tabel. |
| COLUMN_NAME | String | De kolomnaam. |
| DATA_TYPE | smallint | Het SQL-datatype van java.sql.Types. |
| TYPE_NAME | String | De naam van het datatype. |
| COLUMN_SIZE | int | De precisie van de kolom. |
| BUFFER_LENGTH | smallint | Overdrachtsgrootte van de data. |
| DECIMAL_DIGITS | smallint | De schaal van de zuil. |
| NUM_PREC_RADIX | smallint | De radix van de kolom. |
| ONGELDIG | smallint | Geeft aan of de kolom nulleerbaar is. Dit kan een van de volgende waarden zijn: columnNoNulls (0) kolomNullable (1) |
| OPMERKINGEN | String | De opmerkingen die bij de column horen. Notitie: SQL Server geeft altijd null terug voor deze kolom. |
| COLUMN_DEF | String | De standaardwaarde van de kolom. |
| SQL_DATA_TYPE | smallint | Waarde van het SQL-datatype zoals het verschijnt in het TYPE-veld van de descriptor. Deze kolom is hetzelfde als de DATA_TYPE kolom, behalve voor de datatypes datetime en SQL-92 intervalgegevens. Deze kolom geeft altijd een waarde terug. |
| SQL_DATETIME_SUB | smallint | Subtypecode voor datetime- en SQL-92-intervaldatatypes. Voor andere datatypen geeft deze kolom NULL terug. |
| CHAR_OCTET_LENGTH | int | Het maximale aantal bytes in de kolom. |
| ORDINAL_POSITION | int | De index van de kolom binnen de tabel. |
| IS_NULLABLE | String | Geeft aan of de kolom nullwaarden toestaat. |
| SS_IS_SPARSE | smallint | Als de kolom een dunne kolom is, heeft deze de waarde 1; anders 0. 1 |
| SS_IS_COLUMN_SET | smallint | Als de kolom de schaarse column_set kolom is, heeft deze de waarde 1; anders 0. 1 |
| SS_IS_COMPUTED | smallint | Geeft aan of een kolom in een TABLE_TYPE een berekende kolom is. 1 |
| IS_AUTOINCREMENT | String | "JA" als de kolom automatisch wordt verhoogd. "NEE" als de kolom niet automatisch wordt verhoogd. "" (lege string) als de driver niet kan bepalen of de kolom automatisch wordt verhoogd. 1 |
| SS_UDT_CATALOG_NAME | String | De naam van de catalogus die het door de gebruiker gedefinieerde type (UDT) bevat. 1 |
| SS_UDT_SCHEMA_NAME | String | De naam van het schema dat het door de gebruiker gedefinieerde type (UDT) bevat. 1 |
| SS_UDT_ASSEMBLY_TYPE_NAME | String | De volledig gekwalificeerde naam door de gebruiker gedefinieerde type (UDT). 1 |
| SS_XML_SCHEMACOLLECTION_CATALOG_NAME | String | De naam van de catalogus waarin een naam van een XML-schemacollectie is gedefinieerd. Als de catalogusnaam niet gevonden kan worden, bevat deze variabele een lege string. 1 |
| SS_XML_SCHEMACOLLECTION_SCHEMA_NAME | String | De naam van het schema waarin een naam van een XML-schemacollectie is gedefinieerd. Als de schemanaam niet gevonden kan worden, is dit een lege string. 1 |
| SS_XML_SCHEMACOLLECTION_NAME | String | De naam van een XML-schemacollectie. Als de naam niet gevonden kan worden, is dit een lege string. 1 |
| SS_DATA_TYPE | tinyint | Het SQL Server-datatype dat wordt gebruikt door uitgebreide opgeslagen procedures. Notitie Voor meer informatie over de datatypes die door SQL Server worden teruggegeven, zie "Data Types (Transact-SQL)" in SQL Server Books Online. |
(1) Deze kolom zal niet aanwezig zijn als je verbinding maakt met SQL Server 2005 (9.x).
Opmerking
Voor meer informatie over de gegevens die door de getColumns-methode worden teruggegeven, zie "sp_columns (Transact-SQL)" in SQL Server Books Online.
In de Microsoft SQL Server JDBC Driver 3.0 zie je de volgende gedragsveranderingen ten opzichte van eerdere versies van de JDBC-driver:
De kolom DATA_TYPE kent de volgende wijzigingen:
| Gegevenstype SQL Server | Retourtype in JDBC Driver 2.0 (of, indien verbonden met SQL Server 2005 (9.x)) en bijbehorende numerieke constante | Return Type in JDBC Driver 3.0 wanneer verbonden met SQL Server 2008 (10.0.x) en latere versies |
|---|---|---|
| door de gebruiker gedefinieerde type groter dan 8 kB | LONGVARBINARY (-4) | VARBINARY (-3) |
| geografie | LONGVARBINARY (-4) | VARBINARY (-3) |
| meetkunde | LONGVARBINARY (-4) | VARBINARY (-3) |
| varbinary(max) | LONGVARBINARY (-4) | VARBINARY (-3) |
| nvarchar(max) | LONGVARCHAR (-1) of LONGNVARCHAR (JDBC 4) (-16) | VARCHAR (12) of NVARCHAR (JDBC 4) (-9) |
| varchar(max) | LONGVARCHAR (-1) | VARCHAR (12) |
| time | VARCHAR (12) of NVARCHAR (JDBC 4) (-9) | TIJD (-154) |
| date | VARCHAR (12) of NVARCHAR (JDBC 4) (-9) | DATUM (91) |
| datetime2 | VARCHAR (12) of NVARCHAR (JDBC 4) (-9) | TIJDSTEMPEL (93) |
| datetimeoffset | VARCHAR (12) of NVARCHAR (JDBC 4) (-9) | microsoft.sql.Type.DATETIMEOFFSET (-155) |
De kolom COLUMN_SIZE heeft de volgende wijzigingen:
| Gegevenstype SQL Server | Retourtype in JDBC Driver 2.0 | Retourtype in JDBC Driver 3.0 |
|---|---|---|
| nvarchar(max) | 1073741823 | 2147483647 (databasemetadata) |
| xml | 1073741823 | 2147483647 (databasemetadata) |
| door de gebruiker gedefinieerd type kleiner dan of gelijk aan 8 kB | 8 kB (metadata van resultatenset en parameters) | Werkelijke grootte die door de opgeslagen procedure wordt teruggegeven. |
| time | De lengte in karakters van de string representatie van het type, uitgaande van de maximaal toegestane precisie van de component van de fractieseconden. | |
| date | hetzelfde als tijd | |
| datetime2 | hetzelfde als tijd | |
| datetimeoffset | hetzelfde als tijd |
De kolom BUFFER_LENGTH heeft de volgende wijziging:
| Gegevenstype SQL Server | Retourtype in JDBC Driver 2.0 | Retourtype in JDBC Driver 3.0 |
|---|---|---|
| door de gebruiker gedefinieerde type groter dan 8 kB | 2147483647 |
De kolom TYPE_NAME heeft de volgende wijzigingen:
| Gegevenstype SQL Server | Retourtype in JDBC Driver 2.0 | Retourtype in JDBC Driver 3.0 |
|---|---|---|
| varchar(max) | Tekst | varchar |
| varbinary(max) | image | varbinary |
De kolom DECIMAL_DIGITS heeft de volgende wijzigingen:
| SQL Server Type | JDBC Driver 2.0 | JDBC Driver 3.0 |
|---|---|---|
| time | Nul | 7 (of kleiner indien gespecificeerd) |
| date | Nul | Nul |
| datetime2 | Nul | 7 (of kleiner indien gespecificeerd) |
| datetimeoffset | Nul | 7 (of kleiner indien gespecificeerd) |
De kolom SQL_DATA_TYPE heeft de volgende wijzigingen:
| Gegevenstype SQL Server | SQL Server 2008 Gegevenswaarde 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 |
| door de gebruiker gedefinieerd type kleiner dan of gelijk aan 8 kB | -3 | -151 |
| door de gebruiker gedefinieerde type groter dan 8 kB | Niet beschikbaar in JDBC Driver 2.0 | -151 |
| geografie | -4 | -151 |
| meetkunde | -4 | -151 |
| hiƫrarchiid | -4 | -151 |
| time | -9 | 92 |
| date | -9 | 91 |
| datetime2 | -9 | 93 |
| datetimeoffset | -9 | -155 |
Example
Het volgende voorbeeld laat zien hoe je de getColumns-methode gebruikt om informatie terug te geven voor de Person.Contact-tabel in de voorbeelddatabase 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 {}
}
}
Zie ook
SQLServerDatabaseMetaData-methoden
SQLServerDatabaseMetaData-leden
SQLServerDatabaseMetaData-klasse