我想从Teradata的“帮助表”功能生成的数据集中创建一个表,以便我可以添加有关表格的更多信息,并能够按条件过滤行。该表有400列以上的列,因此对于管理非常方便。我希望能够做类似于创建表作为选择的表格的事情,但它不适用于帮助表语法。缺乏将数据导出到Excel,然后手动创建表格架构并将表重新导入,有人知道如何将帮助表查询的输出查询转换为Teradata中的表格吗?

有帮助吗?

解决方案

帮助表命令的输出来自数据字典。

如果我正确理解,您要创建一个具有以下输出的新表。

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   ?

但是首先,我们需要找出数据库和表格。

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;
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top