将 SAS 数字转换为 Teradata BIGINT 的数据类型不匹配
Datatype mismatch converting SAS numeric to Teradata BIGINT
我有一个带有数字变量 ACCT_ID(以及其他字段)的 SAS 数据集。它在 PROC CONTENTS
中的属性是:
# Variable Type Len Format Informat Label
1 ACCT_ID Num 8 19. 19. ACCT_ID
我知道该字段中没有任何非整数值,所以我想将其作为 BIGINT 存储在 Teradata 中,并且我已使用 dbtype
数据集选项指定了它像这样:
data td.output(dbtype=(ACCT_ID="BIGINT", <etc etc>));
但是,这会产生以下错误:
ERROR: Datatype mismatch for column: ACCT_ID.
该字段中没有缺失值或非整数值,即使我使用 round(acct_id, 1)
舍入 ACCT_ID 以显式删除任何 的浮点值,错误仍然存在可以存在。
奇怪的是,如果我在 Teradata 中将其指定为 DECIMAL(18,0) 而不是 BIGINT,则不会出现错误。我想这可能是一种解决方法,但我想了解如何从 SAS 数值变量在 Teradata 中创建整数字段,因为 SAS 不区分整数和浮点数类型。
SAS 不支持 BIGINT 数据类型。参见 http://support.sas.com/kb/34/729.html。
Teradata's BIGINT data type is not supported in SAS/ACCESS Interface
to Teradata. You cannot read or update a table containing a column
with the BIGINT data type in SAS/ACCESS Interface to Teradata.
Attempting to do so generates the following error message:
ERROR: At least one of the columns in this DBMS table has a datatype that is
not supported by this engine.
我有一个带有数字变量 ACCT_ID(以及其他字段)的 SAS 数据集。它在 PROC CONTENTS
中的属性是:
# Variable Type Len Format Informat Label
1 ACCT_ID Num 8 19. 19. ACCT_ID
我知道该字段中没有任何非整数值,所以我想将其作为 BIGINT 存储在 Teradata 中,并且我已使用 dbtype
数据集选项指定了它像这样:
data td.output(dbtype=(ACCT_ID="BIGINT", <etc etc>));
但是,这会产生以下错误:
ERROR: Datatype mismatch for column: ACCT_ID.
该字段中没有缺失值或非整数值,即使我使用 round(acct_id, 1)
舍入 ACCT_ID 以显式删除任何 的浮点值,错误仍然存在可以存在。
奇怪的是,如果我在 Teradata 中将其指定为 DECIMAL(18,0) 而不是 BIGINT,则不会出现错误。我想这可能是一种解决方法,但我想了解如何从 SAS 数值变量在 Teradata 中创建整数字段,因为 SAS 不区分整数和浮点数类型。
SAS 不支持 BIGINT 数据类型。参见 http://support.sas.com/kb/34/729.html。
Teradata's BIGINT data type is not supported in SAS/ACCESS Interface to Teradata. You cannot read or update a table containing a column with the BIGINT data type in SAS/ACCESS Interface to Teradata. Attempting to do so generates the following error message:
ERROR: At least one of the columns in this DBMS table has a datatype that is not supported by this engine.