Каковы хорошие методы / опции для обнаружения синтаксических ошибок в SAS?

StackOverflow https://stackoverflow.com/questions/836157

  •  08-07-2019
  •  | 
  •  

Вопрос

В расширенном редакторе раскраска может дать вам подсказку.Однако на мэйнфрейме, я не верю, что в редакторе есть что-то, что вам поможет.

Я использую

OPTIONS OBS=0 noreplace;

Параметр obs=0 указывает, что из входного набора данных считывается 0 наблюдений, и NOREPLACE сообщает SAS, что не следует перезаписывать существующий набор данных SAS одним из с тем же именем.Если вы создаете новый набор данных, он будет создан со всеми атрибутами, но с 0 наблюдениями.(При необходимости обязательно сбросьте настройки на Параметры Obs=max replace ;когда больше не будет обнаружено синтаксических ошибок).

Меня бы заинтересовали любые другие методы.Спасибо

Объяснение о вариантах пришло от вот.

Это было полезно?

Решение

Я использую опцию отмены в операторе run. Он проверит синтаксис шага данных и завершит его, фактически не выполнив его. Это аналог шага данных для параметра noexec в proc sql.

data something;
<stuff here>
run cancel;

Много подробностей в этом SUGI pdf

Другие советы

Я пишу весь свой код на своем компьютере, используя SAS на своем ПК и улучшенный редактор с цветовой кодировкой. Затем я использую SAS / CONNECT, чтобы обработать его на мэйнфрейме. Если наборы данных находятся на DASD, я использую SAS / CONNECT и Enterprise Guide для прямого запуска кода на мэйнфрейме (без JCL!). Если задействована лента данных и, следовательно, должен выполняться пакет, я использую SAS / CONNECT и SAS движок ftp для отправки кода в очередь пакетов мэйнфреймов. Я использую движок электронной почты SAS, чтобы отправить мне по электронной почте мои выходные данные и мой журнал. Я положил ODS-сэндвич и завершил мой код, чтобы мэйнфрейм генерировал WORD-документ для вывода. Я использую загрузку PROC, чтобы загрузить выходные данные на свой сервер, чтобы открыть их в WORD.

Этот совет не зависит от языка.

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

Я согласен, что есть смысл проверить синтаксис изолированно, но достаточно внимательно прочитать и понять ваш код перед первой компиляцией, чтобы вы знать это будет хороший идеал, к которому стоит стремиться.Стив Макконнелл затрагивает эту идею в Code Complete (см. страницу 827 2-го издания).

P.S.Вы упомянули подсветку синтаксиса в своем первоначальном посте;существуют другие редакторы (такие как VIM), которые будут выполнять подсветку синтаксиса в файлах SAS.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top