In SAS, quali sono le buone tecniche / opzioni per rilevare errori di sintassi?

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

  •  08-07-2019
  •  | 
  •  

Domanda

Nell'editor avanzato, la colorazione potrebbe darti un suggerimento. Tuttavia, sul mainframe non credo ci sia nulla, nell'editor, che ti possa aiutare.

Uso

OPTIONS OBS=0 noreplace;

L'opzione obs = 0 specifica che 0 osservatori vengono letti dall'input set di dati e NOREPLACE dice a SAS di non sovrascrivere un set di dati SAS esistente con uno dei stesso nome. Se stai creando un nuovo set di dati, verrà creato con tutti gli attributi, ma con 0 osservazioni. (Assicurarsi di reimpostare le opzioni, se necessario, su Opzioni Obs = sostituzione massima; quando non vengono rilevati più errori di sintassi).

Sarei interessato a qualsiasi altra tecnica. Grazie

La spiegazione delle opzioni è stata fornita da qui.

È stato utile?

Soluzione

Uso l'opzione di annullamento sull'istruzione run. Controllerà la sintassi del passaggio dei dati, quindi lo terminerà senza eseguirlo effettivamente. È il passaggio di dati analogo all'opzione noexec in proc sql.

data something;
<stuff here>
run cancel;

Molti più dettagli in questo SUGI pdf

Altri suggerimenti

Scrivo tutto il mio codice sul mio PC con SAS sul mio PC e l'editor con codice colore migliorato. Quindi uso SAS / CONNECT per elaborarlo sul mainframe. Se i set di dati sono su DASD, utilizzo SAS / CONNECT ed Enterprise Guide per eseguire direttamente il codice sul mainframe (no JCL!) Se è presente un nastro dati e pertanto deve essere eseguito in batch, utilizzo SAS / CONNECT e SAS motore ftp per inviare il codice alla coda batch del mainframe. Uso il motore di posta elettronica SAS per inviarmi via email il mio output e il mio registro. Ho inserito un sandwich ODS nel mio codice per fare in modo che il mainframe generi un documento WORD per l'output. Uso un download PROC per scaricare l'output sul mio server in modo da poterlo aprire in WORD.

Questo consiglio è indipendente dalla lingua.

Direi che una tecnica preferibile per rilevare errori di sintassi (e logica) è eseguire una lettura ravvicinata (o ispezione) del proprio codice (che dovrebbe rilevare la maggior parte degli errori di sintassi), seguita da test unitari su piccoli set di dati (che rileverà eventuali errori di sintassi rimanenti, nonché molti errori logici se i test sono ben progettati).

Sono d'accordo sul fatto che valga la pena controllare la sintassi in modo isolato, ma leggere e comprendere il codice abbastanza a fondo prima della prima compilazione in modo che sappia la compilazione sia un buon ideale per cui lottare. Steve McConnell tocca questa idea in Code Complete (vedi pagina 827 della 2a Edizione).

P.S. Hai menzionato l'evidenziazione della sintassi nel tuo post originale; ci sono altri editor (come VIM) che eseguiranno l'evidenziazione della sintassi sui file SAS.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top