【问题标题】:Importing Teradata table with surrogate key in sas在 sas 中使用代理键导入 Teradata 表
【发布时间】:2014-01-27 13:03:46
【问题描述】:

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

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

但这不起作用?

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

【问题讨论】:

    标签: sas teradata


    【解决方案1】:

    请注意,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 位密钥作为字符类型导入。您可以通过在 Teradata 的视图中将 BigInt 转换为 char 数据类型来做到这一点。 (在上面的链接中查看其他方法)

    【讨论】:

      猜你喜欢
      • 2015-05-11
      • 2015-07-06
      • 2018-08-21
      • 1970-01-01
      • 2012-01-04
      • 1970-01-01
      • 2017-08-08
      • 2015-07-25
      • 2016-08-20
      相关资源
      最近更新 更多