Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / SAS / 8 сообщений из 8, страница 1 из 1
12.08.2010, 01:33
    #36787316
panasonic85
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SAS
Хочу автоматизировать процесс работы и столкнулся с небольшой проблемой... Задача свелась к следующей:
Имеется таблица, в которой содержится расположение список нужных таблиц из двух колонок:
number Name
1 "Library.table1"
2 "Library.table2"
................
название таблиц может совершенно не взаимосвязанное

Нужно написать скрипт, который объединял все записанные в таблице таблицы.
Изначально хотел написать цикл, внутри которого задавал бы переменной название таблицы. Но к сожалению такая запись
%let z_Name=(select name from Table where number=1);
воспринимается не как точное расположение таблицы, а просто как ячейка... Как быть???
...
Рейтинг: 0 / 0
12.08.2010, 16:10
    #36788816
гость123
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SAS
Поясни суть задачи. Чем тебя вьюхи sashelp.vstable и sashelp.vtable не устраивают ?
...
Рейтинг: 0 / 0
12.08.2010, 23:35
    #36789700
panasonic85
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SAS
как раз эти таблицы и использую)
я хочу сделать так, чтобы можно было автоматически, запустив скрипт, объединить неизвестное количество таблиц (с одинаковой структурой), которые хранятся в одной библиотеке и начинаются с определенного словосочетания.
...
Рейтинг: 0 / 0
13.08.2010, 11:14
    #36790188
гость123
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SAS
ну тогда при чтении из вьюх используй symput и symget на шаге данных, в итоге получишь желаемую макропеременную со списком таблиц, отобранных по определенной маске... вечерком пример скину, валялся где-то дома
...
Рейтинг: 0 / 0
13.08.2010, 21:31
    #36791596
гость123
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SAS
вот как то так... видимо set_name нужно проинициализировать пробелом иначе при _N_=1 в error уйдет, к сожалению, для отладки, трех окон под рукой нет...

data _null_ ;
set sashelp.vtable;
if memname eq <условие отбора> then call symput('set_name',trim(symget('set_name')||'<имя библиотеки>.'||memname)||' ');

run;
...
Рейтинг: 0 / 0
15.08.2010, 23:08
    #36792710
panasonic85
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SAS
Спасибо!
Насколько понимаю _Null_ значит не выводить на экран?
но так и не понял смысл действия функций symput и symget...
...
Рейтинг: 0 / 0
19.08.2010, 22:27
    #36801404
panasonic85
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SAS
спасибо все получилось))))
есть небольшой вопрос, а как из памяти убрать присвоение:
%let n="something";
надо удалить это. как сделать?
...
Рейтинг: 0 / 0
21.08.2010, 00:26
    #36804036
panasonic85
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SAS
сделал просто
%let n='';
и все обнулилось))))
...
Рейтинг: 0 / 0
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / SAS / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]