Печать SAS ODS Query/Statement вместе с выводом
SAS EG
Можно ли как-то распечатать запрос / оператор, используемый для получения выходных данных, вместе с выходными данными, используя SAS ODS?
Предположим,
ods pdf file=pdfile;
proc sql;
select a.*
from tab1 a inner join tab2 b
on a.something=b.something
where <>
having <>;
quit;
ods _all_ close;
это напечатало бы ВЫХОД, сгенерированный из вышеупомянутого запроса. Но можно ли также распечатать запрос через PDF-файл ods вместе с выводом?
1 ответ
Там нет автоматического способа перенаправить журнал, о котором я знаю.
Однако есть несколько способов получить то, что вы хотите.
Во-первых, если вы можете использовать Jupytr, у SAS есть плагины, позволяющие работать с SAS, а затем вы можете просто написать в записной книжке и запустить код, и результаты будут отображаться с вашим кодом так, как вы хотите. См. Сообщение в блоге Криса Хемедингера на эту тему для более подробной информации.
Во-вторых, SAS Studio будет поддерживать интерфейс в стиле ноутбука, вероятно, со следующей крупной версией (я верю версии 5.0), которая выйдет в конце следующего года. Точно так же вы поместите свой код и получите вывод в тех же окнах.
Наконец, третий вариант - сделать так, как предложил Reeza - записать в файл журнала, а затем распечатать его в выходной файл. Это грязно, но возможно.
Вот пример последнего. Я не прилагаю никаких усилий, чтобы очистить его, заметьте, вы, вероятно, захотите удалить протоколирование, связанное с PROC PRINTTO и другими заметками (или включить NONOTE).
ods pdf file="c:\temp\test.pdf";
filename logfile temp;
proc printto log=logfile;
run;
proc sql;
select * from sashelp.class;
quit;
proc printto;
run;
data _null_;
infile logfile;
input @1 @;
call execute(cats('ods text="',trim(_infile_),'";'));
run;
ods _all_ close;