如何过滤teradata帮助表

时间:2010-09-13 21:43:29

标签: teradata

我想从teradata的“帮助表”功能生成的数据集中创建一个表,这样我就可以添加关于表的更多信息,并能够按条件过滤行。该表有400多列,因此管理非常方便。我希望能够做类似于创建表的选项,但它不能与帮助表语法一起使用。如果没有将数据导出到excel,然后手动创建表模式并重新导入表,是否有人知道如何将帮助表查询的输出转换为teradata中的表?

1 个答案:

答案 0 :(得分:5)

HELP TABLE命令的输出来自数据字典。

如果我理解正确,您希望使用以下输出创建一个新表。

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   ?

您可以从表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   ?

但首先我们需要找出DatabaseId和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

现在,您可以列出所需的所有列并相应地存储它们。

select * from dbc.tvfields
where databaseid='00000F04'xb
and tableid='0000D8070000'xb;