解決! Referrring到https://communities.sas.com/t5/Base-SAS-Programming/Irritating-warning-in-Proc-FCMP/td-p/16216
的關鍵是cmplib選項,這裏是我的代碼:
libname mylib 'H:\saslib\testlib';
proc fcmp outlib=mylib.funcs.rule;
function calc(var);
newvar=log(var);
return(newvar);
endsub;
function gen_str(var1 $, var2 $, var3 $) $100;
length newvar $100;
newvar=catx('#', var1, var2, var3);
return(newvar);
endsub;
Run;
/*list the source code*/
Options cmplib=_null_;
proc fcmp library=mylib.funcs;
listfunc calc gen_str;
run;
Quit;
/*using func*/
options cmplib=mylib.funcs;
data _null_;
numret=calc(20);
charret=gen_str('what', 'is', 'your');
put numret= charret=;
run;
/*delete the func*/
options cmplib=mylib.funcs;
proc fcmp outlib=mylib.funcs.rule;
deletefunc calc;
run;
quit;
您已經嘗試了不同的outlib選項? – Reeza
@Reeza,謝謝,我試過這種方式,在我的proc fcmp代碼之前添加[libname mylib'/ home/ap/sas/mydir';]。它的工作原理。但還有另外一個問題,當我使用deletefunc時,sas會告訴你這種減少:SUBROUTINE'GEN_SUB_RULE'找不到刪除。 –
發佈您嘗試刪除它的方式。沒有看到代碼只有假設是你做錯了:) – Reeza