2009-07-15 39 views
1

從SAS向Teradata加載表時,SAS加載數據(通常使用FASTLOAD工具),然後繼續執行腳本。但是,我經常遇到嚴重錯誤,因爲SAS表示數據已加載,但Teradata仍在表中彙編數據。將數據從SAS加載到Teradata - 它什麼時候準備好了?

因此,數據在數據庫中,但尚未準備好使用。我還沒有找到一種方法來知道數據是否已準備好與其他表進行處理。我已經成功地使用了睡眠命令,但這是任意的和不可靠的(因爲誰知道需要多長時間)。

你會如何解決這個問題?

+0

我曾與Sybase有類似的問題,並沒有發現不是等待任何其他解決方案/這樣做我訪問數據庫之前還有其他的東西。 – 2009-07-15 11:58:56

回答

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; 
    
0

你可以睡覺,嘗試查詢,捕捉任何錯誤並循環直到準備好?

+0

問題是,查詢不會出錯。所以我沒有條件循環。 – AFHood 2009-07-18 12:21:30

0

提煉喬恩的答案,你可能想看看查詢處理是否結束。

我對Teradata並不熟悉,但據說必須有一個列出活動進程的系統表。有可能使用通過SQL來查詢當前進程。

相關問題