2017-04-03 57 views
0

我每小時在(基本SAS 9.4)中運行一些SAS查詢。我想知道是否有任何方法可以安排這些按特定時間在特定時間運行?感謝您的幫助:)如何爲每個小時創建基本SAS計劃程序

+2

作爲@pinegulf提到,通常最好是看看奉獻調度解決方案,而不是使用SAS本身作爲一個調度器。你在PC SAS或SAS服務器(什麼操作系統?)?你在使用企業指南嗎? EG有一些調度功能(我認爲與Windows調度程序集成),而SAS BI服務器通常也具有集成的調度程序(LSF或其他)。 – Quentin

+0

我在Windows 7,64位操作系統中使用PC SAS。這是BASE SAS 9.4。在基地薩斯我能夠做調度工作或不。謝謝 – Gagan

+0

在你有一個.sas文件後,在你的代碼在你批量提交時可以工作。在Base SAS中,你可以使用Win調度程序來調度它。所以Win調度程序將運行類似於'C:\ Program Files \ ... \ sas.exe -sysin「C:\ .... \ MyProgram.sas」'。或一個.bat文件或任何腳本。 – Quentin

回答

0

我建議利用一些其他手段的時間進程。 (如cron選項卡或詹金斯)

但是這裏有些東西可能有用。

%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