2009-05-07 19 views
10

Nell'editor avanzato, la colorazione potrebbe darti un suggerimento. Tuttavia, sul mainframe non credo ci sia nulla, nell'editor, che ti possa aiutare.In SAS, quali sono le buone tecniche/opzioni per rilevare gli errori di sintassi?

Io uso

OPTIONS OBS=0 noreplace; 

OB = 0 opzione specifica che 0 observarions vengono letti dall'ingresso set di dati e NOREPLACE dice SAS non sovrascrivere la un set di dati SAS esistente con uno dello stesso nome . Se stai creando un nuovo datastet, verrà creato con tutti gli attributi, ma con 0 osservazioni. Assicurati di reimpostare le opzioni, se necessario, su Opzioni Obs = max replace, quando non vengono trovati più errori di sintassi.

Sarei interessato a qualsiasi altra tecnica. Grazie

Spiegazione della scelta provenivano da here.

risposta

16

si utilizza l'opzione cancella sulla dichiarazione corsa. Verificherà la sintassi del passaggio dei dati e lo interromperà senza eseguirlo. È il passo dati analogico all'opzione noexec in proc sql.

data something; 
<stuff here> 
run cancel; 

sacco maggiori dettagli in questo SUGI pdf

+4

Buon consiglio. Ricordo che ora ricevo un suggerimento (da una classe o da un foglio) per usare una macro var invece di cancellarla. Quindi puoi cambiare la variabile macro in modo che sia vuota quando vuoi veramente eseguire il programma. Grazie per il link. È una buona carta. –

+0

Ottimo consiglio! Grazie! –

+0

Oh bello - ho usato 'noexec' ma non sapevo che esistesse un equivalente datastep ... grazie! –

-1

scrivo tutto il mio codice sul mio PC con SAS sul mio PC e l'editor di codice colore migliorata,. Quindi utilizzo SAS/CONNECT per elaborarlo sul mainframe. Se i set di dati sono su DASD, io uso SAS/CONNECT e Enterprise Guide per eseguire direttamente il codice sul mainframe (senza JCL!) Se è coinvolto un nastro dati e quindi deve essere eseguito in batch, utilizzo SAS/CONNECT e SAS motore ftp per inviare il codice alla coda batch mainframe. Uso il motore di posta elettronica SAS per inviarmi tramite email il mio output e il mio registro. Ho messo e ODS sandwich aound il mio codice per fare in modo che il mainframe generi un documento WORD per l'output. Io uso un download PROC per scaricare l'output sul mio server in modo che possa aprirlo in WORD.

+0

È opportuno notare che SAS/CONNECT e SAS Enterprise Guide sono concesse in licenza separatamente da Base SAS, pertanto questa soluzione non verrà applicata agli utenti che non hanno concesso in licenza tali prodotti. –

-1

Questo consiglio è indipendente dal linguaggio.

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

sono d'accordo c'è qualche vale la pena di controllo della sintassi in isolamento, ma di leggere e comprendere il codice abbastanza a fondo prima della prima compilazione in modo che si sa si compilerà è un buon ideale per tendere. Steve McConnell tocca questa idea in Code Complete (vedi pag. 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.

Problemi correlati