使用sas中的代理键导入Teradata表

时间:2014-01-09 05:44:25

标签: sas teradata

我正在尝试从SAS导入Teradata表。 teradata表有21位数的代理键。 当我从SAS导入它时,代理键列以2.011E12145的形式导入,但其实际值是21位数。 我尝试了以下代码

Data chk;
format p_key $30.;
set chk;
p_key=surrogate;
run;

但这不起作用?

如何避免这种情况并以数字形式导入?

1 个答案:

答案 0 :(得分:0)

请注意,SAS可以准确存储的最大整数是2 ^ 53-1(从内存中调用),即9,007,199,254,740,990(长16位)。然而,Teradata支持的数字高达2 ^ 64-1(BigInt数据类型),这比SAS的要大得多。

我怀疑您的SAS-Teradata访问权限已设置为自动将BigInt类型转换为在SAS中浮动,从而导致精度损失。

请参阅http://support.sas.com/kb/39/831.html

我能看到的唯一其他解决方案是将21位数字键作为字符类型导入。您可以通过将BigInt转换为Teradata中视图内的char数据类型来完成此操作。 (参见上述链接的其他方式)