//SORT01 EXEC PGM=SORT
//SORTIN DD DSN=FICH.PRUEBA.ENTRADA,DISP=SHR
//SORTOUT DD DSN=FICH.PRUEBA.SALIDA,
// DISP=(,CATLG,DELETE),
// SPACE=(CYL,1,1)
//SORTWK01 SPACE=(CYL,(1,1),RLSE)
//SYSOUT DD SYSOUT=*
//SYSIN DD *
SORT FIELDS=(1,10,CH,A)
Obsérvese que para ordenar el fichero FICH.PRUEBA.ENTRADA se utiliza lo siguiente: SORT FIELDS=(1,10,CH,A) => esto supone que se va a ordenar por un campo que empieza en la posición 1, dicho campo es de 10 posiciones, es un campo alfanumérico -CH- y se va a ordenar de forma ascendente -A-
El resultado de la ordenación se guarda en el fichero FICH.PRUEBA.SALIDA
Para ordenar de forma descendente habría que sustituir la A por una D.
Ahora bien, ¿qué pasa sin en lugar de tener un campo alfanumérico (razón por la cual usamos CH) tenemos un campo cuyo tipo es distinto? Pues entonces tendríamos que sustituir CH por:
- BI si el campo a ordenar es un campo numérico: PIC S9(-)
- ZD si el campo a ordenar es un campo numérico: PIC 9(-)
- PD si el campo a ordenar es un campo numérico empaquetado: PIC S9(-)COMP-3
Resumen: para ordenar un fichero en otro debemos utilizar lo siguiente:
SORT FIELDS (X1,X2,TD,ORD)
siendo X1 la posición en la que empieza el campo a ordenar dentro del fichero
X2 la longitud del campo a ordenar
TD el tipo de dato del campo a ordenar (CH, ZD, PD,...)
ORD el tipo de ordenación (A - Ascendente, D - Descendente)
No hay comentarios:
Publicar un comentario