【问题标题】:Using IP ADDRESS in PROC EXPORT in SAS在 SAS 的 PROC EXPORT 中使用 IP ADDRESS
【发布时间】:2018-05-23 15:08:20
【问题描述】:

我正在使用 SAS 的 PROC EXPORT 将 xlsx 格式的信息导出到我网络中的共享文件夹中。当我在输出文件的路径中使用服务器名时,一切正常。当我更改服务器的 IP 地址时,我收到以下错误:

错误:连接:Microsoft Access 数据库引擎无法打开或写入文件“\\123.12.12.12\PUBLIC\TEST1.xlsx”。它已被其他用户独占打开,或者您需要查看和写入其数据的权限。

这是我的代码:

proc export 
data=WORK.TABLE1
DBMS=EXCEL
outfile="\\123.12.12.12\PUBLIC\TEST1.xlsx"
REPLACE;
SHEET='A';
run;

您知道 PROC EXPORT 是否支持 IP ADDRESS 格式吗?如果没有,是否存在通过在输出文件的路径中使用 IP ADDRESS 在 SAS 中导出的其他方法?我必须使用 IP ADDRESS 的方式,因为服务器名称会不时更改,而且我有一堆预定的 SAS 项目。

谢谢你, 丹

【问题讨论】:

  • 你在 excel 中打开了那个文档吗?
  • @Robert Penridge:没有。
  • 您可以使用 nbstat 或 nslookup host 命令来检索 name-for-addr,并在您的 outfile 中使用检索到的名称。我认为更改固定地址的主机名比更改固定名称的地址更具破坏性。

标签: file-io sas export-to-excel


【解决方案1】:

该错误来自文件系统。 SAS 正在使用文件系统来获取您指定的任何路径,因此在 Windows 中,您所拥有的应该可以工作。

可能的问题:

  1. 其他人打开了文件。

  2. 另一个进程已锁定文件。

  3. 您(SAS 运行的用户)没有文件的写入权限 或目录。

测试#3

data _null_;
file "\\123.12.12.12\PUBLIC\TEST1.txt";
put "Hi";
run;

这将确认您在目录中具有写入权限。如果 SAS 在服务器上运行,请按照调用其他程序的方式执行此操作。

如果成功,请尝试从 Windows 中删除 XLSX 文件。如果失败,则您没有权限或有人打开了文件。您将需要对其进行调试。

如果成功,则重新运行您的程序。希望它会创建文件。

【讨论】:

  • 我设法使用服务器名创建了文件。之后我删除了文件,用他的 IP 地址更改了服务器的名称,然后尝试重新创建文件。这个时候问题就出来了。就像你说的那样,我会尝试查看权限。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-28
  • 2019-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多