资料不存在

时间:2018-11-16 20:18:25

标签: sas enterprise-guide

我面临一个非常奇怪的问题。

我分配了一个库名,例如

libname TEST_LIB "/Info-One/...." /*have removed the exact location*/

/*The dataset TEST_DATA is visible in this output*/
proc datasets lib = TEST_LIB;
RUN;

/*This statement throws an error saying the file does not exist*/
DATA TEST_DATA_2;
  set TEST_LIB.TEST_DATA;
RUN;

我正在连接到远程服务器的SAS Enterprise指南中运行此代码。

我还能够从文件资源管理器导航到该位置,并将其拖动到企业指南中,然后该数据集就可见了。但是,即使我双击已定义库中的数据集,它也表示该数据集不存在。

我现在已经没有足够的想法了,我不确定如何解决这个问题。

我尝试过/检查过的几件事

  1. 区分大小写不是问题
  2. 文件名没有空格
  3. 我拥有该文件夹的权限,因为我可以正常使用我创建并放置在该文件夹中的另一个数据集
  4. 实际上,如果我将数据复制到excel,然后将excel上载到SAS以创建SAS数据集,并将其放置在名称不同的相同位置,那么我将面临同样的问题!

我真的很感谢你们可能有任何想法,不仅是关于它为什么会发生,而且还有如何绕过它的想法

2 个答案:

答案 0 :(得分:3)

从评论中转移并扩展

有2种可能性:

  1. 数据集的文件名可能包含大写字母。这是不太可能但可能的情况:

    在Unix系统上,文件名区分大小写。 SAS程序中的数据集名称将在内部映射到相应的小写命名数据文件(在操作系统级别为sas7bdat文件)。如果复制过程以某种方式在Unix上创建了名称为大小写混合的.sas7bdat数据文件,则SAS会话将不会映射到该文件。在这种情况下,SAS文件浏览器可能会列出数据集,但无法打开它。但是,可以直接引用数据集,例如
    set '~/project1/datasets/MyWeirdlyCasedDataset';

  2. 文件夹安装存在文件许可问题,允许读取目录条目(文件名)但不允许读取其中的文件内容(数据集)。尝试打开终端会话(putty或mobaxterm),然后查看数据文件夹(ls -l)的详细目录清单是什么。您可能还必须查看访问控制列表(lsacl)并获取网络和IT管理员参与其中。

答案 1 :(得分:0)

您确定这是一个数据集吗? 如下将memtype = data放入Proc数据集中

proc数据集lib = TEST_LIB memtype = data; 运行;