To jest coś, co pojawia się na SAS-L tak często. Odpowiedź jest taka, że w dużej mierze zależy to od tego, co robisz.
Metoda run cancel
jest prawdopodobnie najlepsza, jeśli masz nadzieję na przerwanie wykonywania z powodu błędu. Na szczycie programie zrobić:
%let cancel =; *or any macro variable name, but cancel is most logical;
Następnie w każdym prowadzonym kroku masz:
data whatever;
... do stuff ...;
run &cancel;
I za każdym razem, gdy jakiś potencjalny błąd, należy sprawdzić stan błędu, a następnie, jeśli natrafi , %let cancel=cancel;
i jesteś dobry.
Jeśli używasz makr, możesz płynnie opuścić makro z numerem %abort
, o ile nie używasz żadnych opcji lub używasz tylko cancel
. W zależności od tego, co robisz, możesz skonfigurować swój kod tak, aby działał w makrze (lub makrach) i używał tej opcji (chociaż z wadą utraty przejrzystości logarytmicznej).
Na koniec, jeśli interesuje Cię możliwość uruchomienia podzbioru kodu, zalecamy napisanie kodu w wielu programach SAS dla bitów, które chcesz uruchomić oddzielnie, a następnie użycie %include
z programu głównego do zgrupuj je wszystkie razem ze wszystkimi zmiennymi makr, które mogą wymagać zestawu, które są współużytkowane. Jest to podobne do tego, jak w EG można budować wiele mniejszych programów, a następnie grupować je za pomocą diagramu procesu.
FYI 'proc sql' ma również podobną opcję o nazwie' noexec'. Pełna składnia to 'proc sql noexec; .... robić coś.... ; zrezygnować. Zawartość procesu nie zostanie wykonana. Możesz użyć tej samej techniki, którą Joe opisał powyżej również. –