長いプログラムを実行する際、「ログ WINDOW FULL:ウィンドウのテキスト域が一杯のため削除します」というウィンドウが表示されて、処理が中断します。
これを回避するにはどうすればよいでしょうか。
上記メッセージは、ログの出力行数が、ウィンドウの最大表示行数である99,999行を超えたことを示しています。
この現象を回避するには、下記の3種類の対応法があります。
PRINTTOプロシジャを使用して、ログの出力先をログウィンドウから外部ファイルに切り替えることができます。
この場合は、行数の制限はありません。
例
/* ログの出力先を外部ファイルに変更 */
PROC PRINTTO LOG="C:\SASLog\print.log" NEW;
RUN;
DATA class;
SET sashelp.class;
RUN;
/* ログの出力先をウィンドウに戻す */
PROC PRINTTO;
RUN;
PRINTTOプロシジャの LOG=オプションに、出力先ファイルのパスまたはファイル参照名を記述します。以降、ログはすべてファイルに記録されます。
ログの出力先をウィンドウに戻すには、オプションなしでPRINTTOプロシジャを実行します。これにより、ログの出力先がデフォルト(ウィンドウ)に戻ります。
すでに同名のファイルが存在する場合、上書きするにはNEWオプションを指定します(NEWオプションを指定しない場合は、追加出力になります)。
プログラムソースやNOTEメッセージの出力が不要な場合は、NONOTES, NOSOURCEシステムオプションを指定して、出力しないようにできます。
NOSOURCE | ソースプログラムを出力しない (デフォルトはSOURCE) |
NONOTES | 「NOTE:」で始まるメッセージを出力しない (デフォルトはNOTES) |
例
OPTIONS NOSOURCE NONOTES;
デフォルトに戻すときは、「OPTIONS SOURCE NOTES;」を指定します。
SAS 9.1以降では、SASコンフィグレーションファイルに、
DMSLOGSIZEシステムオプションを指定することで、出力行数の制限を拡張できます。
以下の例では999,999行まで拡張しております。
例
-DMSLOGSIZE 999999
Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!
コミュニティの基本的なガイドラインについてご説明します。まずは、こちらをご参照ください。
SAS Support CommunitiesのFAQはヘルプに記載されています。参照方法は、こちらからご確認ください。
Japan SAS Discussionページに質問や意見(メッセージ)を投稿/返信する方法を簡単にご説明します。