2009-05-07 16 views
10

En el editor mejorado, la coloración podría darle una pista. Sin embargo, en el mainframe no creo que haya nada, en el editor, que lo ayude.En SAS, ¿cuáles son las buenas técnicas/opciones para detectar errores de sintaxis?

utilizo

OPTIONS OBS=0 noreplace; 

El obs = 0 opción especifica que 0 observarions se leen desde el conjunto de datos de entrada y noreplace dice SAS no se puede sobrescribir la de 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 = max replace; cuando no se encuentren más errores de sintaxis).

Me interesaría cualquier otra técnica. Gracias

Explicación acerca de las opciones vinieron de here.

Respuesta

16

utilizo la opción de cancelación de la cuenta de ejecución. Verificará la sintaxis del paso de datos y luego lo terminará sin ejecutarlo realmente. Es el paso de datos analógico a la opción noexec en proc sql.

data something; 
<stuff here> 
run cancel; 

porciones más detalles en este SUGI pdf

+4

Buen consejo. Recuerdo que ahora obtuve un consejo (de una clase o un periódico) para usar una macro var en lugar de cancelar. Luego puede cambiar la macro var para que quede en blanco cuando realmente desea ejecutar el programa. Gracias por el enlace. Es un buen papel. –

+0

¡Un gran consejo! ¡Gracias! –

+0

¡Qué bueno! He usado 'noexec' pero no sabía que había un equivalente a pasos cruzados ... ¡gracias! –

-1

escribo todo mi código en mi PC con SAS en mi PC y la mejorada, editor de 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 (¡no JCL!). Si hay una cinta de datos involucrada y por lo tanto debe ejecutarse por lotes, uso SAS/CONNECT y SAS Motor ftp para enviar el código a la cola de procesos del mainframe. Utilizo el motor de correo electrónico de SAS para enviarme un correo electrónico con mi resultado y mi registro. Puse el sándwich ODS a mi código para que el mainframe genere un documento WORD para la salida. Utilizo una descarga PROC para descargar la salida a mi servidor para poder abrirla en WORD.

+0

Es bueno tener en cuenta que SAS/CONNECT y SAS Enterprise Guide se licencian por separado de Base SAS, por lo que esta solución no se aplicará a los usuarios que no hayan licenciado esos productos. –

-1

Este consejo es independiente del idioma.

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

Estoy de acuerdo que hay algún valor para comprobación de sintaxis en forma aislada, sino para leer y entender el código de fondo suficiente antes de la primera compilación de modo que usted sabe se compilará es un buen ideal para luchar. Steve McConnell aborda esta idea en Code Complete (vea la página 827 de la 2da Edición).

P.S. Usted mencionó el resaltado de sintaxis en su publicación original; hay otros editores (como VIM) que realizarán resaltado de sintaxis en archivos SAS.

Cuestiones relacionadas