Блокировка таблицы недоступна ... Есть ли способ удерживать (ждать) программу до освобождения набора данных (таблицы)? - PullRequest
0 голосов
/ 31 декабря 2018

Можно ли задержать (подождать) программу, которая запускается через планировщик, пока не будет выпущена определенная таблица или набор данных?Из-за какой-то блокировки таблицы моя программа-планировщик не работает.Я не могу изменить время работы консоли SAS.Я просто хотел знать, есть ли какой-нибудь код, который удерживает запущенную программу до тех пор, пока какой-то конкретный выпуск таблицы и программа не обновятся до тех пор, пока таблица не будет разблокирована

Я пытался использовать приведенный ниже код, но не смог продолжить.

PROC SQL;
INSERT INTO EMPLOYEE.VIKAS_DETAILS (EMPID,AGE, SEX, STATE, COUNTRY) 
            SELECT DISTINCT EMPID, AGE, SEX, STATE, COUNTRY FROM WORK.FINAL_EMPLOYEE; 
QUIT;

ОШИБКА:

Блокировка недоступна для EMPLOYEE.VIKAS.DATA.

Я получаю эту ошибку, потому что одна из моих других программ также вставляет такую ​​жепеременные к вышеупомянутым наборам данных, но с другими данными.

1 Ответ

0 голосов
/ 01 января 2019

Немного зависит от версии SAS и оператора libname, который определяет EMPLOYEE libref.Однако вы можете попробовать добавить опцию FILELOCKWAIT= к имени библиотеки

libname EMPLOYEE … FILELOCKWAIT=300; /* wait up to 5 minutes when a member is locked from use */

FILELOCKWAIT = n
указывает количество секунд, в течение которых SAS ожидает, пока заблокированный файл не станетдоступны для другого процесса.Если заблокированный файл освобождается до количества секунд, указанного в n, SAS блокирует файл для текущего процесса и продолжает работу.Если файл все еще заблокирован, когда достигнуто количество секунд, SAS записывает в журнал ошибку «Locked File», и шаг DATA не выполняется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...