数据不存在

问题描述 投票:0回答:2

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

我已经分配了一个libname,如

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指南中运行此代码。

我还能够从File explorer导航到该位置并将其拖到Enterprise指南中,然后数据集可见。但即使我从定义的库中双击数据集,它也会说数据集不存在。

我现在已经没想完了,我不知道如何解决这个问题。

我尝试/检查了几件事

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

非常感谢你们可能有的任何想法,不仅仅是为什么会发生这种想法,还有如何绕过它

sas enterprise-guide
2个回答
3
投票

从评论中转移并扩展

这有两种可能性:

  1. 数据集的文件名可能包含大写。这是一个不太可能但可能的情况: 在Unix系统上,文件名区分大小写。 SAS程序中的数据集名称将在内部映射到相应的小写命名数据文件(操作系统级别的那些sas7bdat文件)。如果复制过程以某种方式在Unix上创建一个.sas7bdat数据文件,其名称为大小写或大写,则SAS会话将不会映射到它。在这种情况下,SAS文件资源管理器可能会列出数据集,但无法打开它。但是,对数据集的直接文件引用可能有效,例如 set '~/project1/datasets/MyWeirdlyCasedDataset';
  2. 文件夹挂载存在文件权限问题,允许读取目录条目(文件名),但不能读取文件内容(数据集)。尝试打开终端会话(putty或mobaxterm)并查看数据文件夹的详细目录列表(ls -l)您可能还必须查看访问控制列表(lsacl)并获取涉及的网络和IT管理员。

0
投票

你确定这是一个数据集吗?将memtype = data放在Proc Datasets中,如下所示

proc数据集lib = TEST_LIB memtype = data;跑;

© www.soinside.com 2019 - 2024. All rights reserved.