【问题标题】:teradata : to calulate cast as length of columnteradata:计算转换为列的长度
【发布时间】:2017-03-04 11:56:59
【问题描述】:

我需要使用 cast 函数和 teradata 中的列长度。

假设我有一个包含以下数据的表格,

id | name
1|dhawal
2|bhaskar

我需要使用类似的强制转换操作

select cast(name as CHAR(<length of column>) from table

我该怎么做?

谢谢 达瓦尔

【问题讨论】:

  • 必须是固定长度的 CHAR 还是 VARCHAR 也可以?

标签: teradata


【解决方案1】:

您必须通过查看表定义来找到长度 - 手动 (show table) 或编写查询 dbc.ColumnsVdynamic SQL

更新 您可以使用

找到实际数据的最大长度
select max(length(cast(... as varchar(<large enough value>))) from TABLE

但是,如果这是针对 FastExport,我认为 casting as varchar(large-enough-value) 和后处理以删除 FastExport 包含的 2 字节长度信息是一个更好的解决方案(因为导出 CHAR() 将导致具有大量空格的固定长度输出文件在里面)。

您可能已经知道这一点,但以防万一:Teradata 通常建议切换到 TPT,而不是旧的 fexp

【讨论】:

  • 我需要在 per 中编写一个程序,该程序使用快速导出将表数据保存为管道分隔文件。以便可以将其加载到其他数据库。所以需要使用强制转换操作来去除快速导出添加的特殊字符。并且还需要节省文件空间,所以需要对列数据长度进行强制转换操作
  • 感谢回复,我可以找到列长度,但我需要找到列中的数据长度,以便可以转换为该长度。
  • 为什么要使用 FastExport 而不是 TPT,它支持开箱即用的 Deleimited 数据?
猜你喜欢
  • 2017-10-22
  • 1970-01-01
  • 2017-08-09
  • 1970-01-01
  • 2020-07-27
  • 2018-12-21
  • 2018-10-03
  • 2014-06-20
  • 2017-03-03
相关资源
最近更新 更多