Je voudrais créer une table à partir de l'ensemble de données généré par la fonction "table d'aide" de teradata afin que je puisse ajouter plus d'informations sur la table, et pouvoir filtrer les lignes par conditions. la table a plus de 400 colonnes, donc ce serait très pratique pour la gestion. J'aimerais pouvoir faire quelque chose de similaire à la création d'une table en sélection, mais cela ne fonctionne pas avec la syntaxe de la table d'aide. à court d'exporter les données pour exceller, puis de créer manuellement le schéma de la table et d'y réimporter la table, est-ce que quelqu'un sait comment convertir la sortie d'une requête de table d'aide en une table en teradata?Comment filtrer la table d'aide de teradata
1
A
Répondre
3
La sortie de la commande HELP TABLE provient du dictionnaire de données. Si je comprends bien, vous voulez créer une nouvelle table avec la sortie suivante.
help table t1; *** Help information returned. 4 rows. *** Total elapsed time was 1 second. Column Name Type Comment ------------------------------ ---- -------- a1 I ? b1 CF ? c1 D ? d1 DA ?
Vous pouvez obtenir toutes ces trois colonnes (ou même plus) à partir de la table DBC.TVFields.
help table dbc.tvfields; help table dbc.tvfields; *** Help information returned. 37 rows. *** Total elapsed time was 1 second. Column Name Type Comment ------------------------------ ---- ---------------- TableId BF ? FieldName CV ? FieldId I2 ? Nullable CF ? FieldType CF ? MaxLength I ? DefaultValue CV ? DefaultValueI BV ? TotalDigits I2 ? ImpliedPoint I2 ? FieldFormat CV ? FieldTitle CV ? CommentString CV ? CollationFlag CF ? UpperCaseFlag CF ? DatabaseId BF ? Compressible CF ? CompressValueList CV ? FieldStatistics BV ? ColumnCheck CV ? CheckCount I2 ? CreateUID BF ? CreateTimeStamp TS ? LastAlterUID BF ? LastAlterTimeStamp TS ? LastAccessTimeStamp TS ? AccessCount I ? SPParameterType CF ? CharType I2 ? LobSequenceNo I2 ? IdColType CF ? UDTypeId BF ? UDTName CV ? TimeDimension CF ? VTCheckType CF ? TTCheckType CF ? ConstraintId BF ?
Mais d'abord nous devons trouver DatabaseId et TableId.
select databaseid from dbc.dbase where databasename='db1'; *** Query completed. One row found. One column returned. *** Total elapsed time was 1 second. DatabaseId ---------- 00000F04
select TVMId from dbc.tables2 where databaseid='00000F04'xb and TVMName='t1'; *** Query completed. One row found. One column returned. *** Total elapsed time was 1 second. TVMId ------------ 0000D8070000
Maintenant, vous pouvez lister toutes les colonnes dont vous avez besoin et de les stocker en conséquence.
select * from dbc.tvfields where databaseid='00000F04'xb and tableid='0000D8070000'xb;
super! Je ne savais jamais beaucoup de choses. tyvm :) –
Oui. DBC.Columns-> DBC.tables-> DBC.Databases vous donne la liste dans l'ordre requis sans se soucier de DatabaseId, TVMIDs. –