【发布时间】:2017-01-31 12:10:18
【问题描述】:
我正在尝试重新运行旧查询并且遇到了行大小问题。经过一些变通办法后,除了两个值之外,我已经将所有值添加到我需要的表中。每当我尝试添加最后两个字段时,我都会得到某种形式的“这将使最大行长度太长”(取决于我是在运行直接查询还是包含CREATE VOLATILE TABLE ...等等。围绕查询。
暂且不说数据没有理由超过最大行长度(我应该提取与 2016 年 2 月该脚本最后一次成功运行时完全相同的数据),我唯一需要做的就是'能够看到可能导致问题的是,当我运行HELP TABLE 时,两个电话号码字段以及保存地址类型的字段显示最大长度为 16000。电话号码都只有 10 个字符(如预期的那样),地址类型最多只有 4 个字符。
所以我正在寻求帮助的是:
- 什么会导致 Teradata 抛出关于行长度太长的错误,除了行长度实际上太长(就像我说它应该是相同的数据并且脚本之前工作过,所以我不是 100% 相信不只是服务器上的东西)
- 这 3 个字段的最大长度是否可能是候选者?如果是这样,我如何强制它们变小(再次,当我在值上运行
LENGTH时,没有任何返回为 > 10,所以 16000 中的 15990 被浪费了)?为什么在这次运行中将字段设置为比上一次运行时更大? - 如果最大长度不是问题,我可以做些什么来帮助诊断问题?
作为参考,我被卡住的脚本部分如下
CREATE MULTISET VOLATILE TABLE
--DROP TABLE
PCP_DATA_2
AS (
SELECT DISTINCT
PA.Prov_Nbr
, PA.NPI
, OREPLACE(UPPER(TRIM(SDA_MAP.State_Defined_SDA)), ' TEXAS', '') AS SDA
, PA."First/Inst Name"
, PA.Last_Name
, PA.Degree
, PA.Spec_Code
, PA.Spec_Desc
, PA.Hat_Code
, PA.Hat_Desc
, PA.Group_Nbr
, PA.Group_Name
, PA.Address1
, PA.Address2
, PA.City
, PA.State
, PA.Zip
, UPPER(TRIM(SDA_MAP.STD_County_Name)) AS County
, PA.Primary_Phone_Nbr
, PA.Secondary_Phone_Nbr
, PA.Address_Type
, PA.Affstat_Code
, PA.AfterHrs
, PA.Affiliation_ID
FROM
PCP_DATA AS PA
LEFT JOIN V_REF_MD_CITY_COUNTY_SDA_CRSWK AS SDA_MAP
ON PA.Zip = SDA_MAP.USPS_ZipCode
)
WITH DATA PRIMARY INDEX (Prov_Nbr)
ON COMMIT PRESERVE ROWS;
我知道这个问题很笼统,但 Google 并没有提供任何有用的信息,而且我小组中的其他分析师也和我一样难过。
【问题讨论】: