我正在尝试使用sas将sas数据写入配置单元。我在表中有一个id变量,它的长度大于15位,当我将此数据写入配置单元时,我需要将此变量保持为数字。我尝试了下面的脚本,但是它给了我下面的警告,并且配置单元表中的值被截断为15位,带有一个“e”。
data scr.EOB_tgt(dbtype=(nacct="BIGINT"))
;
format nacct best20.
ncust $10.
;
set lat2(keep=ncust nacct bal);
run;
NOTE: SAS variable labels, formats, and lengths are not written to DBMS tables.
WARNING: Value 1589000007877656 has more than 15 digits. It may not be accurately inserted to the BIGINT column.
有人知道如何克服这个问题吗?
我想能够得到完整的16位数字值在配置单元表
1条答案
按热度按时间jk9hmnmh1#
sas将所有数字存储为8字节浮点。所以不能用超过15位的整数来精确表示。要查看可以精确表示的最大整数,请使用constant()函数。
结果:
因此,如果您有任何大于9007199254740992的id值,则不能将它们作为数字存储在sas中。
为什么要将id值存储为数字?不需要对id值执行算术运算。