SAS-proc导入/导出物理文件不存在

SAS-proc导入/导出物理文件不存在,sas,Sas,我尝试从SAS导入/导出文件,而不使用导出向导 据我所知,我的公司在unix服务器上运行SAS,而我想要的是windows驱动器。我们在Citrix环境中使用SAS EG 据我们的IT人员说,有一个UNIX目录映射到windows驱动器(反之亦然),我应该能够访问SAS中的以下目录: /sas_p/gridshared/sh/eg_data/b036081/ 到目前为止,我得到的是: proc export data=work.exp1 outfile="/sas_p/grid

我尝试从SAS导入/导出文件,而不使用导出向导

据我所知,我的公司在unix服务器上运行SAS,而我想要的是windows驱动器。我们在Citrix环境中使用SAS EG

据我们的IT人员说,有一个UNIX目录映射到windows驱动器(反之亦然),我应该能够访问SAS中的以下目录:

/sas_p/gridshared/sh/eg_data/b036081/
到目前为止,我得到的是:

proc export
    data=work.exp1
    outfile="/sas_p/gridshared/sh/eg_data/b036081/exp1_test.csv" dbms=csv;
run;
这会产生一个错误:

ERROR: Physical file does not exist, /sas_p/gridshared/sh/eg_data/b036081/exp1_test.csv.
NOTE: The SAS System stopped processing this step because of errors.
NOTE: There were 1 observations read from the data set WORK.EXP1.

0 records created in /sas_p/gridshared/sh/eg_data/b036081/exp1_test.csv from WORK.EXP1.
但是,进一步往下看,日志告诉我文件已成功创建

NOTE: "/sas_p/gridshared/sh/eg_data/b036081/exp1_test.csv" file was successfully created.
…当它明显不在那里时(我既看不见也无法重新导入)


我错过了什么?我的代码中有任何明显的错误吗?

在导出之前,您应该检查文件夹是否存在

具有以下功能:

/**
*
* @dev Function to check if a file/folder is existing
* @param dsn The pathname of the file/folder to be checked
*
*/

%macro checkFile(dsn /*Enter a pathname Ex: C:\myfile.txt */);
    %if %sysfunc(fileexist(&dsn)) %then
        %do;
            %put &dsn. exists.;
            data _null_;call symputx("checkFile",1,'G');run;
        %end;
    %else
        %do;
            %put &dsn. not exists.;
            data _null_;call symputx("checkFile",0,'G');run;
        %end;
%mend checkFile;

%checkFile("/sas_p/gridshared/sh/eg_data/b036081/");
%put checkFile=&checkFile;
你的出口

%checkFile("/sas_p/gridshared/sh/eg_data/b036081/exp1_test.csv");
%put checkFile=&checkFile;
它将在日志中为您提供有关文件夹的信息。 在重试过程导出之后。因为如果文件夹存在,则没有失败的原因

并在是否创建输出时重做检查文件。 不要太担心警告信息,SAS有时会提供错误信息。事实上,您的文件并没有被创建,但是SAS会给您一条消息,告诉您一切正常

如果文件未创建,请联系管理员,这肯定是访问问题。因为您确实按照预期使用了proc导出,这与duble quote和/或linux环境系统有关


关于,

如果您运行的是
proc export
,那么在运行该proc export时,您会看到关于成功创建文件的注释,这似乎很奇怪。除此之外,是不是这条路错了?在UNIX中,路径开头的斜杠
/
表示系统根目录,因此该路径是完整路径。相对路径以句点、两个句点或文件夹名称开头。您知道您的环境中是否允许使用x命令吗?如果没有,您可以通过运行例如
x'echo test'来找到答案如果是的话,应该可以顺利运行。感谢您给出的有用解释!第二个注释
注释:“/sas\u p/gridshared/sh/eg\u data/b036081/exp1\u test.csv”文件已成功创建。
仍将是一个谜;)这是令人惊讶的帮助,这是我多年前在我的老工作!结果是:它提供的地址有一个输入错误,在检查
SASUSER
WORK
库路径后,我最终确定了它。