Méthode getColumns (SQLServerDatabaseMetaData)
Récupère une description des colonnes d'une table qui sont disponibles dans le catalogue spécifié.
Syntaxe
public java.sql.ResultSet getColumns(java.lang.String catalog,
java.lang.String schema,
java.lang.String table,
java.lang.String col)
Paramètres
catalog
Chaîne contenant le nom du catalogue.
schema
Chaîne contenant le modèle de nom du schéma.
table
String contenant le modèle de nom de la table.
col
Valeur chaîne qui contient le modèle du nom de la colonne.
Valeur de retour
Objet SQLServerResultSet.
Exceptions
Notes
Cette méthode getColumns est spécifiée par la méthode getColumns de l’interface java.sql.DatabaseMetaData.
Le jeu de résultats retourné par la méthode getColumns contient les informations suivantes :
Nom | Type | Description |
---|---|---|
TABLE_CAT | Chaîne | Nom du catalogue. |
TABLE_SCHEM | Chaîne | Le nom du schéma de la table. |
TABLE_NAME | Chaîne | Nom de la table. |
COLUMN_NAME | Chaîne | Nom de la colonne. |
DATA_TYPE | smallint | Type de données SQL de java.sql.Types. |
TYPE_NAME | Chaîne | Nom du type de données. |
COLUMN_SIZE | int | Précision de la colonne. |
BUFFER_LENGTH | smallint | Taille de transfert des données. |
DECIMAL_DIGITS | smallint | Échelle de la colonne. |
NUM_PREC_RADIX | smallint | Base de la colonne. |
NULLABLE | smallint | Indique si la colonne accepte la valeur Null. Ce peut être l’une des valeurs suivantes : columnNoNulls (0) columnNullable (1) |
Remarques | Chaîne | Commentaires associés à la colonne. Remarque : SQL Server retourne toujours Null pour cette colonne. |
COLUMN_DEF | Chaîne | Valeur par défaut de la colonne. |
SQL_DATA_TYPE | smallint | Valeur du type de données SQL tel qu'il apparaît dans le champ TYPE du descripteur. Cette colonne est la même que la colonne DATA_TYPE, excepté pour le type de données datetime et pour le type de données interval de SQL-92. Cette colonne renvoie toujours une valeur. |
SQL_DATETIME_SUB | smallint | Code de sous-type pour le type de données datetime et pour le type de données interval de SQL-92. Pour les autres types de données, cette colonne renvoie la valeur NULL. |
CHAR_OCTET_LENGTH | int | Nombre maximal d'octets dans la colonne. |
ORDINAL_POSITION | int | Index de la colonne dans la table. |
IS_NULLABLE | Chaîne | Indique si la colonne autorise les valeurs Null. |
SS_IS_SPARSE | smallint | Si la colonne est une colonne éparse, la valeur est 1 ; sinon, 0.1 |
SS_IS_COLUMN_SET | smallint | Si la colonne est la colonne éparse column_set, la valeur est 1 ; sinon, 0. 1 |
SS_IS_COMPUTED | smallint | Indique si une colonne dans un TABLE_TYPE est une colonne calculée. 1 |
IS_AUTOINCREMENT | Chaîne | « YES » si la colonne est incrémentée automatiquement. « NO » si la colonne n'est pas incrémentée automatiquement. « » (chaîne vide) si le pilote ne peut pas déterminer si la colonne est incrémentée automatiquement. 1 |
SS_UDT_CATALOG_NAME | Chaîne | Nom du catalogue qui contient le type défini par l'utilisateur (UDT). 1 |
SS_UDT_SCHEMA_NAME | Chaîne | Nom du schéma qui contient le type défini par l'utilisateur (UDT). 1 |
SS_UDT_ASSEMBLY_TYPE_NAME | Chaîne | Type défini par l'utilisateur (UDT) du nom complet. 1 |
SS_XML_SCHEMACOLLECTION_CATALOG_NAME | Chaîne | Nom du catalogue dans lequel un nom de collection de schémas XML est défini. Si le nom du catalogue est introuvable, cette variable contient une chaîne vide. 1 |
SS_XML_SCHEMACOLLECTION_SCHEMA_NAME | Chaîne | Nom du schéma dans lequel un nom de collection de schémas XML est défini. Si le nom du schéma est introuvable, la chaîne est vide. 1 |
SS_XML_SCHEMACOLLECTION_NAME | Chaîne | Nom d'une collection de schémas XML. Si le nom est introuvable, la chaîne est vide. 1 |
SS_DATA_TYPE | tinyint | Type de données SQL Server utilisé par les procédures stockées étendues. Remarque : Pour plus d’informations sur les types de données retournés par SQL Server, consultez la rubrique « Types de données (Transact-SQL) » dans la documentation en ligne de SQL Server. |
(1) Cette colonne sera absente si vous vous connectez à SQL Server 2005 (9.x).
Notes
Pour plus d’informations sur les données retournées par la méthode getColumns, consultez la rubrique « sp_columns (Transact-SQL) » dans la documentation en ligne de SQL Server.
Dans Microsoft SQL Server JDBC Driver 3.0, vous constaterez les changements de comportement suivants par rapport aux versions antérieures du pilote JDBC :
La colonne DATA_TYPE intègre les modifications suivantes :
Type de données de SQL Server | Type de retour dans le pilote JDBC version 2.0 (ou en cas de connexion à SQL Server 2005 (9.x)) et constante numérique associée | Type de retour dans le pilote JDBC version 3.0 en cas de connexion à SQL Server 2008 (10.0.x) et versions ultérieures |
---|---|---|
type défini par l'utilisateur supérieur à 8 Ko | LONGVARBINARY (-4) | VARBINARY (-3) |
Geography | LONGVARBINARY (-4) | VARBINARY (-3) |
geometry | LONGVARBINARY (-4) | VARBINARY (-3) |
varbinary(max) | LONGVARBINARY (-4) | VARBINARY (-3) |
nvarchar(max) | LONGVARCHAR (-1) ou LONGNVARCHAR (JDBC 4) (-16) | VARCHAR (12) ou NVARCHAR (JDBC 4) (-9) |
varchar(max) | LONGVARCHAR (-1) | VARCHAR (12) |
time | VARCHAR (12) ou NVARCHAR (JDBC 4) (-9) | TIME (-154) |
Date | VARCHAR (12) ou NVARCHAR (JDBC 4) (-9) | DATE (91) |
datetime2 | VARCHAR (12) ou NVARCHAR (JDBC 4) (-9) | TIMESTAMP (93) |
datetimeoffset | VARCHAR (12) ou NVARCHAR (JDBC 4) (-9) | microsoft.sql.Types.DATETIMEOFFSET (-155) |
La colonne COLUMN_SIZE intègre les modifications suivantes :
Type de données de SQL Server | Type de retour dans le pilote JDBC version 2.0 | Type de retour dans le pilote JDBC version 3.0 |
---|---|---|
nvarchar(max) | 1073741823 | 2147483647 (métadonnées de base de données) |
Xml | 1073741823 | 2147483647 (métadonnées de base de données) |
type défini par l'utilisateur inférieur ou égal à 8 Ko | 8 Ko (jeu de résultats et métadonnées de paramètre) | Taille réelle retournée par la procédure stockée. |
time | Longueur en caractères de la représentation de chaîne du type, en tenant compte de la précision maximale autorisée pour le composant fractions de seconde. | |
Date | identique à time | |
datetime2 | identique à time | |
datetimeoffset | identique à time |
La colonne BUFFER_LENGTH intègre la modification suivante :
Type de données de SQL Server | Type de retour dans le pilote JDBC version 2.0 | Type de retour dans le pilote JDBC version 3.0 |
---|---|---|
type défini par l'utilisateur supérieur à 8 Ko | 2147483647 |
La colonne TYPE_NAME intègre les modifications suivantes :
Type de données de SQL Server | Type de retour dans le pilote JDBC version 2.0 | Type de retour dans le pilote JDBC version 3.0 |
---|---|---|
varchar(max) | text | varchar |
varbinary(max) | image | varbinary |
La colonne DECIMAL_DIGITS intègre les modifications suivantes :
Type SQL Server | Pilote JDBC version 2.0 | Pilote JDBC version 3.0 |
---|---|---|
time | null | 7 (ou inférieur, si spécifié) |
Date | null | null |
datetime2 | null | 7 (ou inférieur, si spécifié) |
datetimeoffset | null | 7 (ou inférieur, si spécifié) |
La colonne SQL_DATA_TYPE intègre les modifications suivantes :
Type de données de SQL Server | Valeur des données de SQL Server 2008 dans le pilote JDBC version 2.0 | Valeur des données de SQL Server 2008 dans le pilote JDBC version 3.0 |
---|---|---|
varchar(max) | -10 | -9 |
nvarchar(max) | -1 | -9 |
Xml | -10 | -152 |
type défini par l'utilisateur inférieur ou égal à 8 Ko | -3 | -151 |
type défini par l'utilisateur supérieur à 8 Ko | Non disponible dans le pilote JDBC version 2.0 | -151 |
Geography | -4 | -151 |
geometry | -4 | -151 |
hierarchyid | -4 | -151 |
time | -9 | 92 |
Date | -9 | 91 |
datetime2 | -9 | 93 |
datetimeoffset | -9 | -155 |
Exemple
L’exemple suivant montre comment utiliser la méthode getColumns pour retourner des informations pour la table Person.Contact dans l’exemple de base de données 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 {}
}
}
Voir aussi
Méthodes SQLServerDatabaseMetaData
SQLServerDatabaseMetaData, membres
SQLServerDatabaseMetaData, classe