2017-04-03 14 views
0

(Base SAS 9.4)で毎時SASクエリを実行します。私は、特定の順序で毎時間特定の時間に実行するようにこれらのスケジュールを設定する方法があるかどうか疑問に思っていましたか?あなたの助けをありがとう:)毎時ベースSASスケジューラの作成方法

+2

@pinegulfは、通常、スケジューラとしてSAS自体を使用するのではなく、専用スケジューリングソリューションを調べる方がよいでしょう。あなたはPCのSASかSASサーバーですか(どのOSですか)?エンタープライズガイドを使用していますか? EGにはスケジューリング機能がいくつかあります(Windowsスケジューラと統合されていると思います)。また、SAS BIサーバには通常、スケジューラ(LSFなど)が組み込まれています。 – Quentin

+0

ウィンドウズ7,64ビットOSでPC SASを使用しています。それはBASE SAS 9.4です。ベースsasで私はスケジューラーの仕事をすることができるかどうか。ありがとう – Gagan

+0

バッチを提出するときに動作するコードで.sasファイルを作成した後、Baseスケジューラを使用してスケジューリングを行うことができます。したがって、Winのスケジューラーは 'C:¥Program Files¥...¥sas.exe -sysin" C:¥....¥MyProgram.sas "のようなものを実行します。または.batファイルなどのスクリプト。 – Quentin

答えて

0

私はタイミングプロセスの他の手段を利用することをお勧めします。 (cronタブやJenkinsなど)

しかし、ここには何かがあります。

%macro do_every_hour; 
%do %while(1); /*Does not end, so be sure what you do....*/ 

    data time; /*When the loop begins, stored to dataset*/ 
     begin=datetime(); 
    run; 

    %do_the_queries; /*Your own queries go here*/ 


    data time; /*How long did the queries take. */ 
     set time; 
     end=datetime(); 
     time_remain=(60-(end-begin)) <>0 ; /*Calculate the time for sleep if you want every hour. Make sure there are no negative values. */ 
     call symput("sleep_time", time_remain); /*Take the number to macro variable for clarity's sake.*/ 
    run; 

    %sysfunc(sleep(&sleep_time)); /*Here we wait for the next round.*/ 

%end; /*Do loop end.*/ 
%mend do_every_hour; 

%do_every_hour; 
+0

助けてくれてありがとう:) – Gagan

関連する問題