У меня есть много файлов в формате SAS, и я хотел бы иметь возможность считать их в программах за пределами SAS. У меня нет ничего кроме основной системы SAS установленным. Я мог вручную преобразовать каждого, но я хотел бы способ сделать это автоматически.
Вам потребуется работающий сеанс SAS действовать как сервер данных. Затем вы можете получить доступ к данным SAS с помощью ODBC, см. Руководство по драйверам SAS ODBC .
Чтобы запустить локальный сервер SAS ODBC, вам необходимо:
Добавьте запись в файл служб (C: \ WINDOWS \ system32 \ drivers \ etc \ services), например:
... установите номер порта (здесь: 9191 ), чтобы он соответствовал вашей локальной настройке. Имя службы "loclodbc" должно совпадать с именем сервера, как определено в настройке ODBC. Обратите внимание, что термин «Сервер» не имеет ничего общего с именем физического хоста вашего ПК.
Теперь ваш сервер SAS ODBC готов к работе, но ему не назначены доступные ресурсы данных.Обычно вы устанавливаете это на вкладке «Библиотеки» в процессе установки SAS ODBC, но, поскольку вы хотите указывать на источники данных «на лету», мы опускаем это.
Теперь из клиентского приложения вы можете подключиться к серверу SAS ODBC, указать ресурсы данных, к которым вы хотите получить доступ, и получить данные.
SAS указывает на ресурсы данных через концепцию «LIBNAME». Имя библиотеки - это логический указатель на набор данных.
Таким образом,
LIBNAME sasadhoc 'C:\sasdatafolder';
назначает папке «C: \ sasdatafolder» логический дескриптор «sasiodat».
Если вам изнутри SAS нужен доступ к данным, находящимся в файле таблицы данных SAS "C: \ sasdatafolder \ test.sas7bdat", вы должны сделать что-то вроде этого:
LIBNAME sasadhoc 'C:\sasdatafolder';
PROC SQL;
CREATE TABLE WORK.test as
SELECT *
FROM sasadhoc.test
;
QUIT;
Итак, что нам нужно сделать, это сообщить наш сервер SAS ODBC, чтобы назначить имя библиотеки C: \ sasdatafolder из нашего клиентского приложения. Мы можем сделать это, отправив ему этот запрос на выделение ресурсов при запуске, используя параметр DBCONINIT.
Я сделал для этого несколько примеров кода. Мой пример кода также написан на языке BASE SAS. Поскольку очевидно, что существуют более умные способы доступа к данным SAS, чем подключение SAS к SAS через ODBC, этот код служит только в качестве примера.
Вы должны уметь использовать полезные элементы и создать собственное решение в среде программирования, которую вы используете ...
Пример кода подключения SAS ODBC:
PROC SQL;
CONNECT TO ODBC(DSN=loclodbc DBCONINIT="libname sasadhoc 'c:\sasdatafolder'");
CREATE TABLE temp_sas AS
SELECT * FROM CONNECTION TO ODBC(SELECT * FROM sasadhoc.test);
QUIT;
Волшебство происходит в «ПОДКЛЮЧЕНИИ К ODBC. .. "часть кода, присваивая имя библиотеки папке, в которой находятся необходимые данные.
У меня есть никогда не пробовал http://www.oview.co.uk/dsread/ , но это может быть то, что вы ищете: "простая утилита командной строки для работы с наборами данных в формате файла SAS7BDAT . " Но учтите: «Это программное обеспечение следует считать экспериментальным, и его точность не гарантируется. Вы используете его на свой страх и риск. На данный момент оно будет работать только с несжатыми файлами SAS7BDAT в формате Windows».
Я думаю, вы сможете использовать ADO. Подробности см. На сайте поддержки SAS .
Заявление об ограничении ответственности: