SAS PROC导出和DBMS=CSV。错误:导出失败。有关详细信息,请参阅SAS日志

SAS PROC导出和DBMS=CSV。错误:导出失败。有关详细信息,请参阅SAS日志,sas,export,export-to-csv,proc,Sas,Export,Export To Csv,Proc,我想使用SAS 9.4将多个SAS数据集导出为CSV文件(而不是xlsx文件)。对任何数据集使用代码时: proc export data = dataset outfile = "C:\MBorg\dataset.csv" dbms = csv replace; run; 我收到此错误消息: ERROR: Export unsuccessful. See SAS Log for details. NOTE: The SAS System stopped

我想使用SAS 9.4将多个SAS数据集导出为CSV文件(而不是xlsx文件)。对任何数据集使用代码时:

proc export data = dataset
    outfile = "C:\MBorg\dataset.csv"
    dbms = csv replace;
run;
我收到此错误消息:

ERROR: Export unsuccessful.  See SAS Log for details.
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE EXPORT used (Total process time):
      real time           0.06 seconds
      cpu time            0.01 seconds
与错误消息显示的相反,SAS日志没有提供额外的详细信息

按照运行代码或使用空数据集时,文件夹权限或关闭或打开Excel都没有区别。其中提到,当使用带有DBMS=CSV的PROC EXPORT时,可能会发生此错误,并且可以通过使用名称文字语法来避免此错误。但是,按照以下方式使用它并没有什么区别

proc export data = work.'dataset'n
    outfile = "C:\MBorg\dataset.csv"
    dbms = csv replace;
run;
奇怪的是,我能找到的唯一解决问题的方法就是重置SAS<代码>选项obs=max没有区别。不确定是什么原因导致此消息。这发生在SAS 9.4 M0和M7上

任何有关在不重置SAS的情况下导出CSV文件的帮助都会有所帮助。

尝试编写自己的步骤来写入文本文件,而不是要求PROC EXPORT为您生成一个。这至少会让错误信息更清晰

* Get list of variables names ;
proc transpose data=DATASET(obs=0) out=_names_; var _all_; run;
* Write header row ;
data _null_;
  file "C:\MBorg\dataset.csv" dsd lrecl=2000000 ;
  set _names_;
  put _name_ @ ;
run;
* Write data rows ;
data _null_;
  file "C:\MBorg\dataset.csv" dsd lrecl=2000000 mod;
  set DATASET;
  put (_all_) (+0) ;
run;

您可能已经得到一个较早的错误,该错误改变了某些内容。例如,它可能设置了选项OBS=0,这将阻止PROC EXPORT生成的数据步骤读取/写入任何数据。您知道哪些错误会设置该选项吗?@Tom尝试了选项OBS=max,但没有删除代码。此错误似乎是在长时间使用SAS后发生的,在过去几年中,我发现关闭/重新打开SAS是唯一可以避免此错误的方法。由于您正在编写文本文件,因此不需要使用PROC EXPORT。只需编写自己的数据步骤即可编写CSV文件。这可能会让您得到更有意义的错误消息。这并没有使错误消息更清晰。但它确实成功地输出了CSV文件,没有出现错误,即使在前面的代码生成错误消息时也是如此。