Metodo getColumns (SQLServerDatabaseMetaData)
Recupera una descrizione delle colonne di una tabella disponibili nel catalogo specificato.
Sintassi
public java.sql.ResultSet getColumns(java.lang.String catalog,
java.lang.String schema,
java.lang.String table,
java.lang.String col)
Parametri
catalogo
Valore String contenente il nome del catalogo.
schema
Valore String contenente il modello del nome dello schema.
table
Valore String contenente il modello del nome della tabella.
col
Valore String contenente il modello del nome della colonna.
Valore restituito
Oggetto SQLServerResultSet.
Eccezioni
Osservazioni:
Questo metodo getColumns viene specificato dal metodo getColumns nell'interfaccia java.sql.DatabaseMetaData.
Il set di risultati restituito dal metodo getColumns conterrà le informazioni seguenti:
Nome | Tipo | Descrizione |
---|---|---|
TABLE_CAT | Stringa | Nome del catalogo. |
TABLE_SCHEM | Stringa | Nome dello schema della tabella. |
TABLE_NAME | Stringa | Il nome della tabella. |
COLUMN_NAME | Stringa | Nome della colonna. |
DATA_TYPE | smallint | Tipo di dati SQL da java.sql.Types. |
TYPE_NAME | Stringa | Nome del tipo di dati. |
COLUMN_SIZE | int | Precisione della colonna. |
BUFFER_LENGTH | smallint | Dimensioni di trasferimento dei dati. |
DECIMAL_DIGITS | smallint | Scala della colonna. |
NUM_PREC_RADIX | smallint | Radice della colonna. |
NULLABLE | smallint | Indica se la colonna ammette i valori Null. Può essere uno dei valori seguenti: columnNoNulls (0) columnNullable (1) |
REMARKS | Stringa | Commenti associati alla colonna. Nota: restituisce sempre Null per questa colonna... |
COLUMN_DEF | Stringa | Valore predefinito della colonna. |
SQL_DATA_TYPE | smallint | Valore del tipo di dati SQL visualizzato nel campo TYPE del descrittore. Questa colonna corrisponde alla colonna DATA_TYPE, tranne per i tipi di dati datetime e interval SQL-92. Questa colonna restituisce sempre un valore . |
SQL_DATETIME_SUB | smallint | Codice di sottotipo per i tipi di dati SQL-92 datetime e interval. Per gli altri tipi di dati in questa colonna viene restituito NULL. |
CHAR_OCTET_LENGTH | int | Numero massimo di byte nella colonna. |
ORDINAL_POSITION | int | Indice della colonna all'interno della tabella. |
IS_NULLABLE | Stringa | Indica se la colonna ammette valori Null. |
SS_IS_SPARSE | smallint | Se la colonna è di tipo sparse, il relativo valore è 1; in caso contrario, è 0.1 |
SS_IS_COLUMN_SET | smallint | Se la colonna è la colonna column_set di tipo sparse, il relativo valore è 1; in caso contrario, è 0. 1 |
SS_IS_COMPUTED | smallint | Indica se una colonna in TABLE_TYPE è una colonna calcolata. 1 |
IS_AUTOINCREMENT | Stringa | "YES" se la colonna è incrementata automaticamente. "NO" se la colonna non è incrementata automaticamente. "" (stringa vuota) se il driver non è in grado di determinare se la colonna è incrementata automaticamente. 1 |
SS_UDT_CATALOG_NAME | Stringa | Nome del catalogo contenente il tipo definito dall'utente (UDT). 1 |
SS_UDT_SCHEMA_NAME | Stringa | Nome dello schema contenente il tipo definito dall'utente (UDT). 1 |
SS_UDT_ASSEMBLY_TYPE_NAME | Stringa | Tipo definito dall'utente (UDT) del nome completo. 1 |
SS_XML_SCHEMACOLLECTION_CATALOG_NAME | Stringa | Nome del catalogo in cui viene definito il nome di una raccolta di XML Schema. Se non è possibile trovare il nome del catalogo, questa variabile contiene una stringa vuota. 1 |
SS_XML_SCHEMACOLLECTION_SCHEMA_NAME | Stringa | Nome dello schema in cui viene definito il nome di una raccolta di XML Schema. Se non è possibile trovare il nome dello schema, viene visualizzata una stringa vuota. 1 |
SS_XML_SCHEMACOLLECTION_NAME | Stringa | Nome di una raccolta di XML Schema. Se non è possibile trovare il nome, viene visualizzata una stringa vuota. 1 |
SS_DATA_TYPE | tinyint | Tipo di dati di SQL Server usato in stored procedure estese. Nota Per altre informazioni sui tipi di dati restituiti da SQL Server, vedere "Tipi di dati (Transact-SQL)" nella documentazione online di SQL Server. |
(1) Questa colonna non è presente se ci si connette a SQL Server 2005 (9.x).
Nota
Per altre informazioni sui dati restituiti dal metodo getColumns, vedere "sp_columns (Transact-SQL)" nella documentazione online di SQL Server.
In Microsoft SQL Server JDBC Driver 3.0 verranno visualizzate le modifiche di comportamento seguenti rispetto alle versioni precedenti del driver JDBC:
La colonna DATA_TYPE include le modifiche seguenti:
Tipo di dati di SQL Server | Tipo restituito in JDBC Driver 2.0 (o in caso di connessione a SQL Server 2005 (9.x)) e costante numerica associata | Tipo restituito in JDBC Driver 3.0 quando si è connessi a SQL Server 2008 (10.0.x) e versioni successive |
---|---|---|
tipo definito dall'utente maggiore di 8 kB | LONGVARBINARY (-4) | VARBINARY (-3) |
geografia | LONGVARBINARY (-4) | VARBINARY (-3) |
geometry | LONGVARBINARY (-4) | VARBINARY (-3) |
varbinary(max) | LONGVARBINARY (-4) | VARBINARY (-3) |
nvarchar(max) | LONGVARCHAR (-1) o LONGNVARCHAR (JDBC 4) (-16) | VARCHAR (12) o NVARCHAR (JDBC 4) (-9) |
ntext | LONGVARCHAR (-1) | VARCHAR (12) |
Ora | VARCHAR (12) o NVARCHAR (JDBC 4) (-9) | TIME (-154) |
data | VARCHAR (12) o NVARCHAR (JDBC 4) (-9) | DATE (91) |
datetime2 | VARCHAR (12) o NVARCHAR (JDBC 4) (-9) | TIMESTAMP (93) |
datetimeoffset | VARCHAR (12) o NVARCHAR (JDBC 4) (-9) | microsoft.sql.Types.DATETIMEOFFSET (-155) |
La colonna COLUMN_SIZE presenta le modifiche seguenti:
Tipo di dati di SQL Server | Tipo restituito in Microsoft JDBC Driver 2.0 | Tipo restituito in Microsoft JDBC Driver 3.0 |
---|---|---|
nvarchar(max) | 1073741823 | 2147483647 (metadati del database) |
xml | 1073741823 | 2147483647 (metadati del database) |
tipo definito dall'utente minore o uguale a 8 kB | 8 KB (set di risultati e metadati del parametro) | Dimensioni effettive restituite dalla stored procedure. |
Ora | Lunghezza in caratteri della rappresentazione di stringa del tipo, presupponendo la precisione massima consentita del componente delle frazioni di secondo. | |
data | Uguale a time | |
datetime2 | Uguale a time | |
datetimeoffset | Uguale a time |
La colonna BUFFER_LENGTH presenta la modifica seguente:
Tipo di dati di SQL Server | Tipo restituito in Microsoft JDBC Driver 2.0 | Tipo restituito in Microsoft JDBC Driver 3.0 |
---|---|---|
tipo definito dall'utente maggiore di 8 kB | 2147483647 |
La colonna TYPE_NAME presenta le modifiche seguenti:
Tipo di dati di SQL Server | Tipo restituito in Microsoft JDBC Driver 2.0 | Tipo restituito in Microsoft JDBC Driver 3.0 |
---|---|---|
ntext | Testo | varchar |
varbinary(max) | image | varbinary |
La colonna DECIMAL_DIGITS presenta le modifiche seguenti:
Tipo di SQL Server | Driver JDBC 2.0 | Driver JDBC 3.0 |
---|---|---|
Ora | Null | 7 (o inferiore se specificato) |
data | Null | Null |
datetime2 | Null | 7 (o inferiore se specificato) |
datetimeoffset | Null | 7 (o inferiore se specificato) |
La colonna SQL_DATA_TYPE presenta le modifiche seguenti:
Tipo di dati di SQL Server | Valore dei dati di SQL Server 2008 in JDBC Driver 2.0 | Valore dei dati di SQL Server 2008 in JDBC Driver 3.0 |
---|---|---|
ntext | -10 | -9 |
nvarchar(max) | -1 | -9 |
xml | -10 | -152 |
tipo definito dall'utente minore o uguale a 8 kB | -3 | -151 |
tipo definito dall'utente maggiore di 8 kB | Non disponibile in JDBC Driver 2.0 | -151 |
geografia | -4 | -151 |
geometry | -4 | -151 |
hierarchyid | -4 | -151 |
Ora | -9 | 92 |
data | -9 | 91 |
datetime2 | -9 | 93 |
datetimeoffset | -9 | -155 |
Esempio
Nell'esempio seguente viene illustrato come utilizzare il metodo getColumns per restituire informazioni per la tabella Person.Contact nel database di esempio 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 {}
}
}
Vedi anche
Metodi di SQLServerDatabaseMetaData
Membri di SQLServerDatabaseMetaData
Classe SQLServerDatabaseMetaData