Scénario de test & Cas d'usage
Carga, guardado y gestión de tablas en memoria.
Descubrir todas las acciones de tableSe crea una tabla maestra 'transacciones_maestra' y una tabla de origen 'transacciones_delta' que contiene datos a filtrar (monto <= 0) y una columna extra ('COMENTARIO') que no está en el destino.
| 1 | DATA casuser.transacciones_maestra; |
| 2 | LENGTH ID_TRANSACCION $ 12 MONTO 8; |
| 3 | ID_TRANSACCION = 'TXN1000'; MONTO = 150.75; OUTPUT; |
| 4 | ID_TRANSACCION = 'TXN1001'; MONTO = 2300.00; OUTPUT; |
| 5 | RUN; |
| 6 | |
| 7 | DATA casuser.transacciones_delta; |
| 8 | LENGTH ID_TRANSACCION $ 12 MONTO 8 COMENTARIO $ 50; |
| 9 | ID_TRANSACCION = 'TXN2001'; MONTO = 99.99; COMENTARIO = 'Venta online'; OUTPUT; |
| 10 | ID_TRANSACCION = 'TXN2002'; MONTO = 0.00; COMENTARIO = 'Transacción de prueba'; OUTPUT; |
| 11 | ID_TRANSACCION = 'TXN2003'; MONTO = 500.00; COMENTARIO = 'Transferencia'; OUTPUT; |
| 12 | ID_TRANSACCION = 'TXN2004'; MONTO = -50.00; COMENTARIO = 'Reverso de prueba'; OUTPUT; |
| 13 | RUN; |
| 1 | |
| 2 | PROC CAS; |
| 3 | TABLE.loadTable / caslib='casuser' path='transacciones_maestra.sashdat' casout={name='transacciones_maestra', replace=true}; |
| 4 | RUN; |
| 5 |
| 1 | PROC CAS; |
| 2 | TABLE.append / |
| 3 | SOURCE={name='transacciones_delta', caslib='casuser', where='MONTO > 0'}, |
| 4 | target={name='transacciones_maestra', caslib='casuser'}; |
| 5 | RUN; |
| 1 | |
| 2 | PROC CAS; |
| 3 | TABLE.fetch / TABLE={name='transacciones_maestra', caslib='casuser'}; |
| 4 | RUN; |
| 5 |
La acción 'append' debe ejecutarse sin errores. El log de CAS indicará que 2 filas fueron añadidas. La salida de 'table.fetch' mostrará un total de 4 filas en 'transacciones_maestra': las 2 originales más las transacciones 'TXN2001' y 'TXN2003'. Las transacciones con monto cero o negativo no deben estar presentes. La columna 'COMENTARIO' no debe aparecer en la tabla final, demostrando que CAS manejó correctamente la discrepancia de columnas.