Attention, lorsque la recherche par index échoue (pas de correspondance), la variable automatique ERROR est mise à 1 par défaut, ce qui pollue la log; pour gérer proprement les non-correspondances sans erreur, vous devez tester explicitement si la variable IORC est égale à la valeur retournée par la macro %SYSRC(_DSENOM) ("Data Set End Of Menu").
Type : CREATION_INTERNE
Toutes les données (tables x et y) sont générées dynamiquement dans le script à l'aide de boucles et de fonctions aléatoires (uniform, ranuni).
| 1 | DATA x ; |
| 2 | DO i=0 to 2 ; |
| 3 | j=round(uniform(i)*10) ; |
| 4 | put _all_ ; |
| 5 | OUTPUT ; |
| 6 | END ; |
| 7 | RUN ; |
| 1 | DATA y(index=(i)) ; |
| 2 | DO i=1 to 4 ; |
| 3 | j=round(ranuni(i)*3) ; |
| 4 | DO k=1 to j ; |
| 5 | put _all_ ; |
| 6 | OUTPUT ; |
| 7 | END ; |
| 8 | END ; |
| 9 | RUN ; |
| 1 | DATA z ; |
| 2 | SET x(in=in_x) ; |
| 3 | SET y(in=in_y) key=i ; |
| 4 | put _iorc_= _all_ / ; |
| 5 | RUN ; |