0

SAS を使用して大量のレポートを生成し、ログをファイルに保存しています。これまでのところ非常に良好で、1 つのことを除いてすべてが正常に機能しています。

ログ ファイルで単語の警告とエラーをチェックし、これらの単語が見つかった場合は、ファイルをエラー フォルダーに配置するマクロがあります。私たちが抱えている問題は、proc import を使用して CSV ファイルをインポートすると、これが自動的にログ ファイルに記録されることです。

proc import datafile=XXXXXXXXXX
out=XXXXXXXXXX
dbms=dlm
replace;
delimiter=',';
getnames=yes;
datarow=2;
GUESSINGROWS=1000;
run;

/**********************************************************************
*   PRODUCT:   SAS
*   VERSION:   9.1
*   CREATOR:   External File Interface
*   DATE:      30AUG13
*   DESC:      Generated SAS Datastep Code
*   TEMPLATE SOURCE:  (None Specified.)
***********************************************************************/
data XXXXXXXX;
%let _EFIERR_ = 0; /* set the ERROR detection macro variable */
infile XXXXXXXX delimiter = ',' MISSOVER DSD  firstobs=2 ;
informat XXXXXXXX $5. ;
... code continue
format XXXXXXXX $5. ;
... code continue
input
XXXXXXXX $
... code continue
;
if _ERROR_ then call symputx('_EFIERR_',1);  /* set ERROR detection macro variable */
run;

そのため、エラーのフラグが付けられた多数のファイルが残っていますが、それらにはフラグを付けるべきではありません。ログ ファイルで proc インポート コードを非表示にするために何ができるかについて何か考えはありますか?

ありがとう

4

3 に答える 3

3

エラーチェックログの場合、行頭の ERROR または WARNING のみを考慮します。

if index(_infile_, 'ERROR') = 1 ....

また、許容されるエラー メッセージのリストもあります。

そうでない場合は、NOSOURCE オプションを使用して IMPORT が生成するものを非表示にできるようですが、あまり良くありません。

options nosource;
proc import file='E:\test.csv' out=test replace;
run;
options source;
于 2013-08-30T19:36:24.637 に答える
0

proc インポートまたは proc エクスポートの余分な出力を抑制するための「options nosource」を提案する投稿をいくつか見ましたが、実際に機能するのを見たことはありません。SAS Web サイトに投稿された例があり、動作しないことを示しています。ページはhttp://documentation.sas.comですが、そのリンクが機能しない場合は、「sas proc export nosource 02sep16」を検索してください。オプションで nosource が指定されていても、番号付きの行には不要な出力が含まれていることに注意してください。

于 2019-08-29T20:44:15.900 に答える