您好我在proc内容之后创建一个宏proc导出,这里的代码是。
%macro cont(dataset_sheet, library );
proc contents data= &library .&dataset_sheet out=&dataset_sheet
; run;
proc export data= &library . &dataset_sheet outfile="C:\mapp.xls"
dbms=excelcs replace; sheet="&dataset_sheet";run;
%mend;
%cont(dataset, my_lib);
并且它适用于proc内容但是当我同时运行时它表示在proc导出语句中没有那种类型的库...这里有什么问题?
答案 0 :(得分:1)
您的问题可能是因为.
是宏变量终止符。它通常是可选的,但如果它存在则使用它;因此,如果下一个字符实际上应该是.
,那么它应该加倍。
因此,&library.&dataset.
&library
= WORK
和&dataset
= TEST
表示您要WORKTEST
,而不是{{1} }}。您需要第二个句点:在这种情况下为WORK.TEST
。
答案 1 :(得分:0)
删除库名后的额外空格并包含另一个“。”
%macro cont(dataset_sheet, library );
proc contents data= &library..&dataset_sheet out=&dataset_sheet
; run;
proc export data= &library..&dataset_sheet outfile="C:\mapp.xls"
dbms=excelcs replace; sheet="&dataset_sheet";run;
%mend;
%cont(dataset, my_lib);