我有一个带有数字变量ACCT_ID(以及其他字段)的SAS数据集。它在PROC CONTENTS
中的属性是:
# Variable Type Len Format Informat Label
1 ACCT_ID Num 8 19. 19. ACCT_ID
我知道此字段中没有任何非整数值,因此我想将其存储为Teradata中的BIGINT,并且我已使用dbtype
数据指定了此字段像这样设置选项:
data td.output(dbtype=(ACCT_ID="BIGINT", <etc etc>));
但是,这会出现以下错误:
ERROR: Datatype mismatch for column: ACCT_ID.
该字段中没有丢失或非整数值,即使我使用round(acct_id, 1)
舍入ACCT_ID来明确删除可能存在的任何浮点值,错误仍然存在。< / p>
奇怪的是,如果我在Teradata中将它指定为DECIMAL(18,0)而不是BIGINT,则不会给出错误。我想这可能是一种解决方法,但是我想了解如何在SAS数字变量中创建Teradata中的整数字段,因为SAS没有区分整数和浮点之间的类型。
答案 0 :(得分:3)
SAS不支持BIGINT数据类型。请参阅http://support.sas.com/kb/34/729.html。
SAS / ACCESS接口不支持Teradata的BIGINT数据类型 到Teradata。您无法读取或更新包含列的表 在Teradata的SAS / ACCESS接口中使用BIGINT数据类型。 尝试这样做会生成以下错误消息:
错误:此DBMS表中至少有一列具有的数据类型 这个引擎不支持。