为什么我的 SAS 存储过程不将数据集输出到 E.G.,而日志显示它已创建?

Why doesn't my SAS Stored Process output the data set to E.G., while the log shows it's created?

我正在 SAS EG 中为一些业务合作伙伴创建一个存储过程,但我似乎无法输出我的数据集。

A 'Results' 查看器显示但为空白,我的代码在不使用存储过程时工作得很好,但用户必须手动更改他们正在查找的帐户的宏变量。通过存储过程,我可以减轻用户意外删除某些代码等的情况。

我可以在我的 SAS 日志中看到正在使用变量和观察创建输出数据集,但它不会像典型的 SAS EG 作业那样自动弹出。我还有一些从同事那里收到的关于存储过程的文档,在我看来,成功执行后应该会自动输出 SAS 数据集。

一个想法:如果日志中有警告,存储过程是否会输出数据集?我收到警告是因为我将数据集附加到未创建的基础文件,因此我的数字变量的长度发生了变化。

这是日志中的一个片段..

    NOTE: The address space has used a maximum of 5504K below the line and 222716K above the line.


104        
105        data tran_last;
106             retain TRAN_DT MRCH_NAME MRCH_CITY AMT_TRAN DEB_CRD_IND;
107        set tran_sorted;
108        output;
109        run;

                                                                                          The SAS System

NOTE: There were 164 observations read from the data set WORK.TRAN_SORTED.
NOTE: The data set WORK.TRAN_LAST has 164 observations and 5 variables.
NOTE: The DATA statement used 0.00 CPU seconds and 51817K.

NOTE: The address space has used a maximum of 5504K below the line and 222716K above the line.

数据集 WORK.TRAN_LAST 是我希望输出的数据集,以便我的用户可以直接从那里 copy/paste,也许我遗漏了一些明显的东西,但我似乎不能解决这个问题。

版本 7.1

答案非常简单。我不得不使用

PROC PRINT DATA = MYDATA ;
RUN;

在我的存储过程结束时。

但是,我有 SAS Institute 的书籍说您可以使用 proc print 从存储过程而不是 "Results Viewer" 检索 "Output Data" 文件。这个功能一定是在更新的版本中被取消了,或者我做错了什么。

为了解决这个问题,我将我的 SAS 连接到一个 excel 文件,end-user 将从中 运行 程序,这样他们就不需要担心输出是 "Results Viewer".