2014-07-22 32 views
0
遠程使用PROC鈣鎂磷肥功能

我剛剛得知PROC鈣鎂磷肥從這個頁面:定義在SAS

http://support.sas.com/documentation/cdl/en/proc/61895/HTML/default/viewer.htm#a003181727.htm

功能本地工作正常,所以我不知道如果我可以用這個遙控PROC 。在我看來,只要我改變這個函數的輸出庫,它就可以用在遠程服務器上。這裏是我的代碼:

proc fcmp outlib=rwork.funcs.trial; 
    function study_day2(intervention_date, event_date); 
     n = event_date - intervention_date; 
     if n >= 0 then 
      n = n + 1; 
     return (n); 
    endsub; 
options cmplib=rwork.funcs; 
run; 

rsubmit; 
data _null_; 
    start = '15Feb2008'd; 
    today = '27Mar2008'd; 
    sd = study_day2(start, today); 
    put sd=; 
run; 
endrsubmit; 

爲第1部分,我得到的通知,該功能已被保存在RWORK庫:

NOTE: Function study_day2 saved to rwork.funcs.trial.

但是運行第2節之後,我得到這個錯誤:

ERROR 68-185: The function STUDY_DAY2 is unknown, or cannot be accessed.

有沒有辦法解決這個問題?謝謝!

回答

0

假設你想用這種方式編程(在本地機器上編譯函數並遠程運行),並且你有一臺通過SAS/CONNECT連接的機器,它與操作系統和位元(64/32位)相同您的本地機器,您需要在rsubmit中運行options cmplib=rwork.funcs;(除非您可能需要更改它,假設rwork指向您的遠程工作目錄,至options cmplib=work.funcs;)。

rsubmit; 
options cmplib=work.funcs; 
data _null_; 
    start = '15Feb2008'd; 
    today = '27Mar2008'd; 
    sd = study_day2(start, today); 
    put sd=; 
run; 
endrsubmit; 

這種選擇是不是proc fcmp,你似乎根據你在哪裏位於它的想法。當使用函數時,它告訴SAS在哪裏看。 (在proc fcmpoutlib選項是什麼是需要存儲在那裏。)

如果你的遠程服務器是不同的操作系統或位數比本地機器上,你不能做到這一點,就需要把整節的代碼在rsubmit

+0

感謝喬的回答(尤其是OPTIONS CMPLIB的解釋)。我按照你的建議修改了代碼,但仍然得到相同的錯誤。有什麼想法嗎? – Nip

+0

@Nip遠程計算機的操作系統和位數與本地PC相同嗎? – Joe

+0

這兩個都是Windows,但我需要檢查位數。 – Nip