Vue LISTCOLUMNS

La DVSYS.LISTCOLUMNS vue affiche la liste des colonnes des tables dans une source RDBMS.

Avant de commencer

Remarque : vous ne pouvez appeler LISTCOLUMNS qu'en tant que requête, et non en tant que PreparedStatement (c'est-à-dire SELECT * FROM DVSYS.LISTCOLUMNS WHERE CID= ?).
Tenez compte des limitations suivantes :
Limite de récupération des tables
Seules les 10 000 premières lignes sont récupérées par défaut. Pour accéder aux tables au-delà de ce lot initial, utilisez le prédicat FILTER pour affiner le filtre de schéma, de table et de colonne afin de récupérer les colonnes qui vous intéressent. Pour plus d'informations, consultez la colonne FILTRE dans le tableau suivant.

Vous pouvez également augmenter le nombre de lignes récupérées en modifiant la propriété de configuration BATCHSIZE_FOR_LISTSCHEMAS_OR_LISTTABLES, mais cela peut avoir un impact négatif sur les performances.

Limites de délai d'attente et de concurrence
L'API de la source de données appelle LISTSCHEMAS, LISTTABLES, et LISTCOLUMNS qui sont soumis à un délai d'expiration configurable défini par la SOURCE_CATALOG_API_GETCOLUMNS_TIMEOUT_MS propriété, dont la valeur par défaut est de 5 minutes. De plus, le nombre maximal d'appels simultanés est contrôlé par la SOURCE_CATALOG_API_MAX_CONCURRENCY propriété, dont la valeur par défaut est 4. Les requêtes entrantes qui dépassent cette limite de concurrence ne seront pas traitées et ne renverront aucune ligne.
Remarque : pour plusieurs sources de catalogue, la RELOADTABLES_ALLCOLS_<CID> propriété définit le catalogue par défaut utilisé, sauf si le prédicat FILTER et le catalogue sont définis. Par exemple : <catalog>,null,null,null).
Pour définir le FILTRE, exécutez cette vue et veillez à remplacer <xxxx...> par les valeurs CID et FILTRE.
SELECT * FROM DVSYS.LISTCOLUMNS WHERE CID='<xxxx>' and FILTER='<xxxxxx>'

L'API de la source de données renvoie la valeur dans les JDBC colonnes DatabaseMetaadata.getColumns() API.

Tableau 1. DVSYS.LISTCOLUMNS
Colonne Type Description
configuration, installation et distribution VARCHAR(20) L'identifiant de connexion. Il s'agit d'un prédicat d'entrée obligatoire sous la forme d'une constante de chaîne.
Filtrer VARCHAR(500) Prédicat d'entrée facultatif que vous utilisez lorsque vous appelez LISTCOLUMNS pour activer les opérations de pushdown. Ce prédicat se présente sous la forme d'une constante de chaîne.

Chaîne d'entrée CSV composite avec le même format que celui utilisé pour les propriétés RELOADTABLES_ALLCOLS_<CID>='<CATALOG>,<SCHEMAPATTERN>,<TABLENAMEPATTERN>,<COLUMNNAMEPATTERN>.

TCATALOG VARCHAR(128) Nom du catalogue.
TSCHEM VARCHAR(128) Nom du schéma.
TNAME VARCHAR(128) Nom de la table.
TCOLUMN VARCHAR(20) Le nom de la colonne du tableau.
DATA_TYPE SMALLINT Le type de données renvoyé sous la forme. java.sql.Types
TYPE_NAME VARCHAR(80) Nom du type pour la valeur de la colonne DATA_TYPE.
TAILLE_DE_LA_COLONNE INT La taille de la colonne.
  • Pour les types numériques, il indique la précision maximale.
  • Pour les types de caractères, il représente le nombre de caractères.
  • Pour les types datetime, il reflète la longueur en caractères de la représentation sous forme de chaîne, en supposant une précision maximale pour les fractions de seconde.
  • Pour les types binaires et ROWID, il indique la longueur en octets.
  • Si la taille de la colonne ne s'applique pas à un type de données particulier, la sortie renvoie null.
DECIMAL_DIGITS SMALLINT Le nombre de chiffres après la virgule.
NUM_PREC_RADIX SMALLINT La base utilisée pour le type de données numériques. Cette valeur peut être 2, 10, ou NULL.
NULL ADMIS SMALLINT Indique si NULL les valeurs sont autorisées.
  • columnNoNulls: NULL les valeurs peuvent ne pas être autorisées.
  • columnNullable: NULL les valeurs sont autorisées.
  • columnNullableUnknown: La nullité est inconnue.
REMARKS VARCHAR(2000) Commentaires décrivant la colonne.
COLONNE_DEF VARCHAR(254) La définition de la colonne.
CHAR_OCTET_LONGUEUR INT Nombre maximal d'octets dans la colonne.
POSITION_ORDINALE INT L'index de la colonne dans le tableau.
IS_NULLABLE VARCHAR(3) Indique si la colonne peut contenir des valeurs nulles.
SCOPE_CATALOG VARCHAR(128) Définit le nom du catalogue d'une table référencée par l'attribut REF.

La valeur est renvoyée NULL si DATA_TYPE n'est pas REF.

SCOPE_SCHEMA VARCHAR(128) Définit le nom du schéma d'une table référencée par l'attribut REF.

La valeur est renvoyée NULL si DATA_TYPE n'est pas REF.

SCOPE_TABLE VARCHAR(128) Définit le nom d'une table référencée par l'attribut REF.

La valeur est renvoyée NULL si DATA_TYPE n'est pas REF.

TYPE_DONNEES_SOURCE SMALLINT Le type source d'un type distinct ou d'un type Ref généré par l'utilisateur, le type de données se présente sous la forme. java.sql.Types

La valeur est renvoyée NULL si DATA_TYPE n'est pas DISTINCT ou une référence REF générée par l'utilisateur.

IS_AUTOINCREMENT VARCHAR(3) Indique si cette colonne est incrémentée automatiquement.
  • YES: La colonne est incrémentée automatiquement.
  • NO: La colonne n'est pas incrémentée automatiquement.
  • "": Il n'est pas possible de déterminer si la colonne est auto-incrémentée.
IS_GENERATEDCOLUMN VARCHAR(3) Indique s'il s'agit d'une colonne générée. Cette valeur renvoie actuellement ““.

Exemple

Cet exemple fait appel getColumns('null','SSPD','DISTTEST%','%') à la source Db2 distante :

select * from DVSYS.LISTCOLUMNS WHERE CID='DB210001' AND FILTER='null,SSPD,DISTTEST%,%'
Exemple de résultat :
CID	FILTER	TCATALOG	TSCHEM	TNAME	TCOLUMN	DATA_TYPE	TYPE_NAME	COLUMN_SIZE	BUFFER_LENGTH	DECIMAL_DIGITS	NUM_PREC_RADIX	NULLABLE	REMARKS	COLUMN_DEF	SQL_DATA_TYPE	SQL_DATETIME_SUB	CHAR_OCTET_LENGTH	ORDINAL_POSITION	IS_NULLABLE	SCOPE_CATALOG	SCOPE_SCHEMA	SCOPE_TABLE	SOURCE_DATA_TYPE	IS_AUTOINCREMENT	IS_GENERATEDCOLUMN
DB210321	null,SSPD,DISTTEST%,%		SSPD	DISTTEST	C1	4	INTEGER	10		0	10	1						1	YES						
DB210321	null,SSPD,DISTTEST%,%		SSPD	DISTTEST	C2	3	DECIMAL	10		5	10	1						2	YES						
DB210321	null,SSPD,DISTTEST%,%		SSPD	DISTTEST	C3	12	VARCHAR	10				1					20	3	YES						
DB210321	null,SSPD,DISTTEST%,%		SSPD	DISTTEST	C4	93	TIMESTAMP	29		9	10	1						4	YES						

En savoir plus

Pour plus d'informations sur BATCHSIZE_FOR_LISTSCHEMAS_OR_LISTTABLES, SOURCE_CATALOG_API_GETCOLUMNS_TIMEOUT_MS, SOURCE_CATALOG_API_MAX_CONCURRENCY et RELOADTABLES_ALLCOLS_<CID>, reportez-vous aux propriétés SETCONFIGPROPERTY.