Teradata 失败2616计算期间发生数字溢出

Teradata 失败2616计算期间发生数字溢出,teradata,numeric,teradata-sql-assistant,Teradata,Numeric,Teradata Sql Assistant,尝试从长度为18的平面文件插入记录时,bteq中的insert语句工作正常 插入在线客户 选择 案例 当t1.site_id=1002时,将t1.membership转换为小数38,0 否则无效 终止 来自trans t1 在t1.membership=t2.membership和t1.site_id=t2.site_id上左外连接cust1 t2 ; 但是当长度增加到19时,我得到下面的错误 *** Failure 2616 Numeric overflow occurred during

尝试从长度为18的平面文件插入记录时,bteq中的insert语句工作正常

插入在线客户 选择 案例 当t1.site_id=1002时,将t1.membership转换为小数38,0 否则无效 终止 来自trans t1 在t1.membership=t2.membership和t1.site_id=t2.site_id上左外连接cust1 t2 ; 但是当长度增加到19时,我得到下面的错误

 *** Failure 2616 Numeric overflow occurred during computation.
                Statement# 1, Info =0   
 *** Total elapsed time was 1 second.

在线客户在cust1中定义为小数38,0,在trans和cust1中,会员资格定义为VARCHAR40。cust表中有在线客户VARCHAR100

这可能来自演员阵容或插曲。尝试分解查询并查看是哪一个导致了错误

在查询中,将VARCHAR40转换为小数38,0,然后插入VARCHAR100。为什么不将VARCHAR插入VARCHAR并使用to_NUMBER来确保有效的数字:

插入在线客户 选择 铸造 案例 当t1.site_id=1002时,则发送至_NUMBERt1.membership-确保有效号码 终止 作为VARCHAR100 来自trans t1 在t1.membership=t2.membership和t1.site_id=t2.site_id上左外连接cust1 t2
falt文件流获取的数据类似于“45710000225922272321”。我厌倦了上面的建议,再次失败,出现相同的错误hmm…是否需要验证t1.membership是否为有效的数值?如果没有,您可以删除TO_编号,它应该可以工作。也许您的数字太大了,达到了一些系统限制。您能显示实际的查询以及平面文件的加载方式吗?2677 | 793282394 | 4 | 13:55:21 | 11/22/2019 | 1 | 5931966436043 |凯西·A |加兰| 11伍德朗大道|奥本|我|我们| 04210 |奥本山大道100よ奥本よ我12404210よ我们よ现在与您的完全不同原始问题:-您将substrt1.membership_nbr,9作为整数,根据您的示例数据,这对于2259272321是失败的,这远远超过了整数的限制。当as INTEGER流入不同的列时为case。我面对的是vale 21列,如果t1.site_id=1002,那么t1.membership_nbr end如果我将该值减少到18位,代码工作正常。