数据不存在

Data does not exist

我遇到了一个很奇怪的问题。

我分配了一个库名,例如

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 guide 中使用此代码。

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

我现在 运行 没有想法,我不确定如何解决这个问题。

我有几件事 tried/checked

  1. 区分大小写不是问题
  2. 文件名没有空格
  3. 我有权访问该文件夹,因为我可以正常使用我创建并放置在该文件夹中的另一个数据集
  4. 事实上,如果我将数据复制到 excel,将 excel 上传到 SAS 以创建 SAS 数据集并将其放在同一位置但名称不同,我会遇到同样的问题!!

非常感谢你们可能有的任何想法,不仅是关于它发生的原因,还有如何绕过它

转自评论并展开

这里有两种可能性:

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

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

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

你确定那是数据集吗? 如下所示将 memtype=data 放入 Proc Datasets

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