数据类型不匹配将SAS数字转换为Teradata BIGINT

时间:2015-08-30 16:56:40

标签: sas teradata type-conversion sqldatatypes

我有一个带有数字变量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没有区分整数和浮点之间的类型。

1 个答案:

答案 0 :(得分:3)

SAS不支持BIGINT数据类型。请参阅http://support.sas.com/kb/34/729.html

  

SAS / ACCESS接口不支持Teradata的BIGINT数据类型   到Teradata。您无法读取或更新包含列的表   在Teradata的SAS / ACCESS接口中使用BIGINT数据类型。   尝试这样做会生成以下错误消息:

     

错误:此DBMS表中至少有一列具有的数据类型   这个引擎不支持。