将数据从SAS加载到Teradata - 何时准备好?

时间:2009-07-15 11:55:18

标签: sql sas etl teradata

将表从SAS加载到Teradata时,SAS会加载数据(通常使用FASTLOAD工具),然后继续执行脚本。但是,我经常会遇到严重错误,因为SAS表示数据已加载,但Teradata仍然在表中汇总数据。

因此数据在数据库中,但尚未准备好使用。我还没有找到一种方法来了解数据是否已准备好与其他表一起处理。我已成功使用睡眠命令,但这是任意的和不可靠的(因为谁知道需要多长时间)。

你会如何解决这个问题?

3 个答案:

答案 0 :(得分:0)

你可以睡觉,尝试查询,捕捉任何错误并循环直到准备好了吗?

答案 1 :(得分:0)

精炼Jon的答案,你可能想看一下查询处理是否已经结束。

我不熟悉Teradata,但据说必须有一个列出活动进程的系统表。可以使用pass through SQL来查询获取当前进程。

答案 2 :(得分:0)

我会尝试以下方法:

  1. 测试DBCOMMIT=数据集选项是否有帮助
  2. 如果1.没有帮助,请在OPEN函数上使用循环来查询表是否准备就绪,如下所示:

    data _null_;
      dsid=0;
      do i=1 to 3600 while(dsid<=0);
         ts=SLEEP(1,1);
         dsid=OPEN('TERADATA.MYTABLE','I');
      end;
      if dsid then dsid=CLOSE(dsid);
    run;