Синтаксис into
в proc sql
сохраняет отформатированные значения в макропеременных. Например, если вы запустите этот код:
proc sql noprint;
select count(*) into :dscnt from sashelp.class;
quit;
%put #&dscnt#;
Вы увидите вывод:
# 19#
Другими словами, результат остается дополненным пробелами. Это означает, что в вашем примере код разрешается примерно так:
select libname into :libname1 - :libname 19 from study;
^ Что, очевидно, неверный синтаксис. Чтобы это исправить, вы можете просто добавить ключевое слово TRIMMED
в оператор SQL:
select count(*) into :dscnt TRIMMED from study;
Спасибо Reeza за ключевое слово TRIMMED.