В SAS, каковы хорошие методы / опции для обнаружения синтаксических ошибок? - PullRequest
10 голосов
/ 07 мая 2009

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

Я использую

OPTIONS OBS=0 noreplace;

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

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

Объяснение опций пришло от здесь.

Ответы [ 3 ]

16 голосов
/ 07 мая 2009

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

data something;
<stuff here>
run cancel;

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

0 голосов
/ 12 августа 2009

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

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

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

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

0 голосов
/ 12 августа 2009

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

...