WARNING: An argument to the function INTNX referenced by the %SYSFUNC or %QSYSFUNC macro function is out of range.

Всем добрый день.

Сегодня урок будет посвящен неправильной работе с функций INTNX, а именно использование ее совместно с %SYSFUNC.

Дело в том, что случай с которым столкнулся неприятен тем, что в логе SAS выдается Warning, т.е. ошибка как таковая не возникает, вследствие чего процесс бежит дальше, хотя он уже неправильный. Таким образом если у нас есть некие мониторы, которые настроены на отлавливание ошибок, то они не сработают в нашем случае.

Итак, обычная работа с функцией INTNX (выведем первое число текущего месяца):

Мы видим, что параметр month и beginning находятся в кавычках.

Теперь попробуем туже схему выполнить через %SYSFUNC:

Мы получили ошибку из заголовка:

WARNING: An argument to the function INTNX referenced by the %SYSFUNC or %QSYSFUNC macro function is out of range.

Помимо этого значение макро переменной x оказалось пустым.

Обратите внимание, что параметры month и beginnign также стоят в кавычках.

Данная проблема решается тем, что мы убираем с перечисленных параметров кавычки:

В этом же варианте все хорошо.

Еще раз хочу сказать, что коварность данной проблемы состоит в том, что вылезает просто Warning, а не ошибка!

До скорых встреч!

Николай.

Добавить комментарий

Войти с помощью: 

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.