1

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

4

1 回答 1

5

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

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

帮助表 t1;

 *** 帮助信息返回。4行。
 *** 总经过时间为 1 秒。

列名 类型 注释
------------------ ---- --------
a1 我?
b1 CF ?
c1 D ?
d1 达?

您可以从 DBC.TVFields 表中获取所有这三列(甚至更多)。

帮助表 dbc.tvfields;

帮助表 dbc.tvfields;

 *** 帮助信息返回。37 行。
 *** 总经过时间为 1 秒。

列名 类型 注释
------------------------------ ---- ----------------
表 ID BF ?
字段名 CV ?
字段 ID I2 ?
可空 CF ?
字段类型 CF ?
最大长度我?
默认值简历?
默认值 BV ?
总数字 I2 ?
隐含点 I2 ?
字段格式简历?
简历 ?
评论字符串简历?
Collat​​ionFlag CF ?
大写标志 CF ?
数据库 ID BF ?
可压缩CF ?
压缩值列表简历?
现场统计公司 ?
列检查简历?
检查计数 I2 ?
创建UID BF?
创建时间戳 TS ?
LastAlterUID BF ?
LastAlterTimeStamp TS ?
LastAccessTimeStamp TS ?
访问计数我?
SPParameterType CF ?
字符型 I2 ?
LobSequenceNo I2 ?
IdColType CF ?
UDTypeId BF ?
UDT 姓名简历?
时间维度 CF ?
VTCheckType CF ?
TTCheckType CF ?
约束Id BF ?

但首先我们需要找出 DatabaseId 和 TableId。

选择数据库标识
来自 dbc.dbase
其中数据库名称='db1';

 *** 查询完成。找到一排。一列返回。
 *** 总经过时间为 1 秒。

数据库 ID
----------
00000F04
选择 TVMId
来自 dbc.tables2
其中databaseid='00000F04'xb
和 TVMName='t1';

 *** 查询完成。找到一排。一列返回。
 *** 总经过时间为 1 秒。

TVMId
------------
0000D8070000

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

从 dbc.tvfields 中选择 *
其中databaseid='00000F04'xb
和 tableid='0000D8070000'xb;
于 2010-09-15T20:40:18.980 回答