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