Come filtrare Teradata tavolo aiuto
-
02-10-2019 - |
Domanda
Mi piacerebbe creare un tavolo fuori dal set di dati generato dalla funzione "help tabella" di Teradata così posso aggiungere qualche informazione in più sulla tabella, ed essere in grado di filtrare le righe dalle condizioni. la tabella contiene oltre 400 colonne, quindi questo sarebbe molto conveniente per l'amministrazione. Mi piacerebbe essere in grado di fare qualcosa di simile alla creazione di una tabella come selezionare, ma non funziona con la sintassi aiuto tavolo. breve di esportare i dati in Excel, quindi manualmente creando lo schema della tabella e importare la schiena tavolo, qualcuno sa come convertire l'output di una query aiuto tavolo in una tabella in Teradata?
Soluzione
L'output del comando HELP TABLE viene dal Data Dictionary.
Se ho capito bene, si vuole creare una nuova tabella con la seguente uscita.
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 ?
È possibile ottenere tutte quelle tre colonne (o anche più) dalle DBC.TVFields tabella.
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 ?
Ma prima dobbiamo scoprire DatabaseID e 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
Ora è possibile elencare tutte le colonne è necessario e memorizzarli corrispondentemente.
select * from dbc.tvfields where databaseid='00000F04'xb and tableid='0000D8070000'xb;