table attribute

Prueba de Casos Límite y Manejo de Errores

Scénario de test & Cas d'usage

Contexto empresarial

Un analista de datos junior está aprendiendo a usar la acción 'attribute' y comete errores comunes. Este escenario prueba la robustez de la acción frente a entradas incorrectas y su capacidad para manejar diferentes tipos de datos en los valores de los atributos.
Sobre el conjunto : table

Carga, guardado y gestión de tablas en memoria.

Descubrir todas las acciones de table
Preparación de datos

Creación de una tabla de sensores muy simple para las pruebas.

¡Copiado!
1DATA casuser.SENSOR_DATA;
2 INPUT SensorID $ Reading;
3 DATALINES;
4TEMP01 25.5
5HUMID01 60.1
6;
7RUN;

Étapes de réalisation

1
Intento de añadir atributos usando el parámetro 'attributes' pero omitiendo el parámetro obligatorio 'set'. Se espera que la acción falle con un error claro.
¡Copiado!
1PROC CAS;
2 TABLE.attribute /
3 task='ADD',
4 caslib='casuser',
5 name='SENSOR_DATA',
6 attributes={{key='Status', value='Active'}};
7RUN; QUIT; /* Se espera un error en el log */
2
Intento de añadir un atributo a una columna que no existe ('NonExistentColumn'). Se espera que la acción falle o genere una advertencia clara.
¡Copiado!
1PROC CAS;
2 TABLE.attribute /
3 task='ADD',
4 caslib='casuser',
5 name='SENSOR_DATA',
6 SET='Diagnostics',
7 attributes={{key='Unit', column='NonExistentColumn', value='Celsius'}};
8RUN; QUIT; /* Se espera un error o advertencia */
3
Llamada válida que añade atributos con diferentes tipos de datos (string, integer, double) en un solo conjunto 'MixedTypes' para verificar la correcta gestión de tipos.
¡Copiado!
1PROC CAS;
2 TABLE.attribute /
3 task='ADD',
4 caslib='casuser',
5 name='SENSOR_DATA',
6 SET='MixedTypes',
7 attributes={
8 {key='DeviceStatus', value='Online'},
9 {key='CalibrationCycle', value=180},
10 {key='MaxThreshold', value=99.9}
11 };
12RUN; QUIT;
4
Verificar que los tipos mixtos se almacenaron correctamente exportando a una tabla y usando 'columnInfo'.
¡Copiado!
1PROC CAS;
2 TABLE.attribute /
3 task='EXPORT',
4 caslib='casuser',
5 name='SENSOR_DATA',
6 SET='MixedTypes',
7 casOut={name='MIXED_TYPES_VERIFY', caslib='casuser', replace=true};
8RUN;
9 TABLE.columnInfo / TABLE='MIXED_TYPES_VERIFY';
10RUN; QUIT;
5
Eliminar el conjunto de atributos 'MixedTypes' para limpiar el entorno.
¡Copiado!
1PROC CAS;
2 TABLE.attribute /
3 task='DROP',
4 caslib='casuser',
5 name='SENSOR_DATA',
6 SET='MixedTypes';
7RUN; QUIT;

Resultado esperado


La etapa 1 y 2 deben fallar, registrando errores claros en el log de SAS que indiquen la ausencia del parámetro 'set' y la referencia a una columna inexistente. La etapa 3 debe tener éxito. La etapa 4 debe mostrar que la tabla exportada 'MIXED_TYPES_VERIFY' tiene columnas con los tipos de datos correctos para los valores de los atributos. La etapa 5 debe ejecutarse correctamente, eliminando los metadatos. El escenario valida el manejo de errores y la flexibilidad de tipos de la acción.