Чтобы просто создать выходной файл csv
в операционной системе, используйте DATA _NULL_
.Шаг данных не имеет оператора SET
, поэтому нет строк данных для обработки.Поскольку у вас есть DATA TC_LEVEL_JUNE01
, он создаст однорядный набор выходных данных и выходной файл.Не уверен, почему LRECL=7353
, когда операторы put создадут строку из 46 символов.
Это ближе к тому, что вам нужно для вывода с фиксированным столбцом (запятые могут не понадобиться для последующей обработки?):
DATA _NULL_; /* do not create an output data set */
SET TC_LEVEL_JUNE01; /* read record from this data set */
FILE "C:\Users\JUNE01.csv" LRECL = 7353; /* place output from PUT in this file */
PUT /* 'Export' three columns of data */
@5 VAR1 $20.
@25 VAR2 $20.
@45 VAR3 2.
;
RUN;
Для действительных PUT
заполненных csv
также потребуется разделение запятыми и двойные кавычки.
Например:
data _null_;
set sashelp.class;
file 'c:\temp\class.csv' dlmstr=',' dsd;
put name sex age ;
run;
From FILE
помогает (мои слова выделены)
DSD (данные, чувствительные к разделителю)
указывает, что значения данных, которые содержат встроенные разделители, такие как вкладки илизапятые, заключенные в кавычки.Опция DSD позволяет записывать значения данных, которые содержат встроенные разделители, в вывод LIST.Эта опция игнорируется для других типов вывода (например, отформатировано , столбец и имя).Любые двойные кавычки, включенные в значение данных, повторяются.Когда значение переменной содержит разделитель, а DSD используется в операторе FILE, значение переменной заключается в двойные кавычки при генерировании выходных данных.