十进制:Redshift COPY 中的整数太大

Decimal: Integral number too large in Redshift COPY

我从 Redshift 收到以下错误。

Decimal: Integral number too large

插入以下 csv 行时会发生这种情况

2015-03-20,A_M300X250CONTENT_INT_ADSENSE,3443,3443,1.4,13,, 

错误是由 1.4 抛出的。

该列的定义是这样的:

schemaName | tablename | column          | type         | encoding | disktkey | sortkey | notnull 
-----------|-----------|-----------------|--------------|----------|----------|---------|---------
public     | partners  | revenue_partner | numeric(7,7) | none     | false    | 0       | false

当类型为 numeric(7,2) 时,此副本工作正常,但我需要更改它以修复舍入错误。

阅读文档http://docs.aws.amazon.com/redshift/latest/dg/r_Numeric_types201.html

看起来numeric(7,7)数据类型只能存储0-1之间的值,有效数字为7位。第二个数字是您可以在小数点后拥有的值的数量,第一个数字 - 第二个数字将是您可以在小数点之前拥有的值的数量。

numeric(7,7) 表示允许的总位数为 7,所有 7 都分配为小数。如果你想要7位小数 7位你需要numeric(14,7)