Type : CREATION_INTERNE
Les exemples utilisent des données générées (datalines) pour les jeux de données 'Inventory' et 'InventoryAdd'.
| 1 | DATA Inventory; |
| 2 | INPUT partNumber $ partName $ stock price receivedDate :date9.; |
| 3 | FORMAT receivedDate date9.; |
| 4 | DATALINES; |
| 5 | K89R seal 34 245.00 07JUL2015 |
| 6 | M4J7 sander 98 45.88 20JUN2015 |
| 7 | LK43 filter 121 10.99 19MAY2016 |
| 8 | MN21 brace 43 27.87 10AUG2016 |
| 9 | BC85 clamp 80 9.55 16AUG2016 |
| 10 | NCF3 valve 198 24.50 20MAR2016 |
| 11 | KJ66 cutter 6 19.77 18JUN2016 |
| 12 | UYN7 rod 211 11.55 09SEP2016 |
| 13 | JD03 switch 383 13.99 09JAN2017 |
| 14 | BV1E timer 26 34.50 03AUG2017 |
| 15 | ; |
| 16 | RUN; |
| 17 | |
| 18 | DATA InventoryAdd; |
| 19 | INPUT partNumber $ partName $ newStock newPrice; |
| 20 | DATALINES; |
| 21 | AA11 hammer 55 32.26 |
| 22 | BB22 wrench 21 17.35 |
| 23 | BV1E timer 30 36.50 |
| 24 | CC33 socket 7 22.19 |
| 25 | K89R seal 6 247.50 |
| 26 | KJ66 cutter 10 24.50 |
| 27 | ; |
| 28 | RUN; |
| 29 | |
| 30 | PROC SORT DATA=Inventory; BY partNumber; RUN; |
| 31 | PROC SORT DATA=InventoryAdd; BY partNumber; RUN; |
| 32 | PROC PRINT DATA=Inventory; title "Inventory"; RUN; |
| 33 | PROC PRINT DATA=InventoryAdd; title "InventoryAdd"; RUN; |
| 1 | DATA Inventory; |
| 2 | modify Inventory InventoryAdd; |
| 3 | BY partNumber; |
| 4 | select (_iorc_); |
| 5 | when (%sysrc(_sok))DO; |
| 6 | stock = stock + newStock; |
| 7 | price=newPrice; |
| 8 | receivedDate = today(); |
| 9 | replace; |
| 10 | END; |
| 11 | when (%sysrc(_dsenmr)) DO; |
| 12 | stock=newStock; |
| 13 | price=newPrice; |
| 14 | receivedDate=today(); |
| 15 | OUTPUT; |
| 16 | _error_=0; |
| 17 | END; |
| 18 | otherwise DO; |
| 19 | put "An unexpected I/O error has occurred."; |
| 20 | _error_ = 0; |
| 21 | stop; |
| 22 | END; |
| 23 | END; |
| 24 | RUN; |
| 25 | PROC SORT DATA=Inventory; |
| 26 | BY partNumber; |
| 27 | RUN; |
| 28 | PROC PRINT DATA=Inventory; |
| 29 | title "Modified Inventory Data Set Sorted by partNumber"; |
| 30 | RUN; |
| 31 | QUIT; |