En SAS, ¿cuáles son buenas técnicas / opciones para detectar errores de sintaxis?

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

  •  08-07-2019
  •  | 
  •  

Pregunta

En el editor mejorado, el color puede darte una pista. Sin embargo, en el mainframe no creo que haya nada, en el editor, que pueda ayudarlo.

Yo uso

OPTIONS OBS=0 noreplace;

La opción obs = 0 especifica que se leen 0 observaciones desde la entrada conjunto de datos y NOREPLACE le dice a SAS que no sobrescriba un conjunto de datos SAS existente con uno de los mismo nombre. Si está creando un nuevo datastet, se creará con todos los atributos, pero con 0 observaciones. (Asegúrese de restablecer las opciones, si es necesario, a Opciones Obs = reemplazo máximo; cuando no se encuentran más errores de sintaxis).

Me interesaría cualquier otra técnica. Gracias

La explicación sobre las opciones provino de aquí.

¿Fue útil?

Solución

Uso la opción cancelar en la declaración de ejecución Verificará la sintaxis del paso de datos y luego terminará sin ejecutarlo realmente. Es el paso de datos análogo a la opción noexec en proc sql.

data something;
<stuff here>
run cancel;

Muchos más detalles en este SUGI pdf

Otros consejos

Escribo todo mi código en mi PC con SAS en mi PC y el editor mejorado con código de color. Luego uso SAS / CONNECT para procesarlo en el mainframe. Si los conjuntos de datos están en DASD, uso SAS / CONNECT y Enterprise Guide para ejecutar directamente el código en el mainframe (¡sin JCL!) Si hay una cinta de datos involucrada y, por lo tanto, debe ser un lote, uso SAS / CONNECT y el SAS motor ftp para enviar el código a la cola del lote de mainframe. Uso el motor de correo electrónico SAS para enviarme de vuelta mi salida y mi registro. Puse un sándwich ODS en mi código para que el mainframe genere un documento WORD para la salida. Utilizo una descarga de PROC para descargar el resultado en mi servidor para poder abrirlo en WORD.

Este consejo es independiente del lenguaje.

Yo diría que una técnica preferible para detectar errores de sintaxis (y lógica) es realizar una lectura cercana (o inspección) de su propio código (que debería detectar la mayoría de los errores de sintaxis), seguido de pruebas unitarias en conjuntos de datos pequeños (que detectará cualquier error de sintaxis restante, así como muchos errores lógicos si sus pruebas están bien diseñadas).

Estoy de acuerdo en que vale la pena verificar la sintaxis de forma aislada, pero leer y comprender su código lo suficientemente bien antes de la primera compilación para que sepa que compilará es un buen ideal para luchar. Steve McConnell toca esta idea en Code Complete (vea la página 827 de la 2da edición).

P.S. Mencionaste el resaltado de sintaxis en tu publicación original; Hay otros editores (como VIM) que realizarán resaltado de sintaxis en archivos SAS.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top