ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Sort Cobol


Enviado por   •  4 de Noviembre de 2013  •  8.494 Palabras (34 Páginas)  •  650 Visitas

Página 1 de 34

SORT vol.1: SORT, INCLUDE.

La estructura general de un SORT es la siguiente:

//SORT001 EXEC PGM=SORT,PARM=('DYNALLOC=(SYSALLDA,32)')

//SORTIN DD DSN=nombre.fichero.entrada1,DISP=SHR

// DD DSN=nombre.fichero.entrada2,DISP=SHR

//SORTOUT DD DSN=nombre.fichero.salida1,

// DISP=(,CATLG,DELETE),SPACE=(CYL,(500,100))

//SYSOUT DD SYSOUT=*

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

PGM=SORT --> Indica el programa a utilizar, en este caso el SORT

PARM=('DYNALLOC=(SYSALLDA,32)') --> Cantidad de memoria que se da a la ejecución del paso. Si se queda corto, aumentarla en valores de 8,12,32,64,128, 256 (como las memorias RAM)

SORTIN --> Ficheros de entrada

SORTOUT --> Ficheros de salida

SYSIN --> Indica el tipo de sort a realizar, las opciones disponibles son muchas y muy variadas, pudiendo utilizarse varias juntas en un mismo paso. Algunas de ellas son SORT, SUM, OMIT, INCLUDE, INREC, OUTREC, OUTFIL, OPTION … .

En este documento se explica en detalle algunas de estas funciones:

SORT

SORT FIELDS --> Ordena los registros a partir del fichero de entrada y los guarda ordenados en el fichero de salida:

//SORT001 EXEC PGM=SORT,PARM=('DYNALLOC=(SYSALLDA,32)')

//SORTIN DD DSN=nombre.fichero.entrada1,DISP=SHR

// DD DSN=nombre.fichero.entrada2,DISP=SHR

//SORTOUT DD DSN=nombre.fichero.salida1,

// DISP=(,CATLG,DELETE),SPACE=(CYL,(500,100))

//SYSOUT DD SYSOUT=*

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

SORT FIELDS=(I,L,T,O,I,L,T,O)

I – Inicio. Posición donde empieza el campo por el que se quiere ordenar

L – Longitud máxima del campo por el que se quiere ordenar

T – Tipo de dato del campo que se quiere ordenar:

CH --> Alfanumérico o numérico normal(sin COMP)

BI --> Hexadecimal (campos COMP)

PD --> Empaquetado con o sin signo(campos COMP-3)

O – Orden. A-Ascendente, D- Descendente

Ejemplo:

Ordenar el siguiente fichero por Número y Nombre de cliente en orden ascendente:

----+----1----+----2----+----3----+----4----+----5----+----6----+----7--

000000002JAVIER MARTINEZ CARRETEROASALARIADO

000000006ANTONIO VILLA SUSO AUTONOMO

000000005YOLANDA LOPEZ ALONSO AUTONOMO

000000001JOSE LOPEZ PITA AUTONOMO

000000004CARLOS POLO DEL BARROAUTONOMO

000000003CARLOS PEREZ FANO AUTONOMO

Fórmula:

SORT FIELDS=(1,9,CH,A,10,10,CH,A)

Resultado:

----+----1----+----2----+----3----+----4----+----5----+----6----+----7--

000000001JOSE LOPEZ PITA AUTONOMO

000000002JAVIER MARTINEZ CARRETEROASALARIADO

000000003CARLOS PEREZ FANO AUTONOMO

000000004CARLOS POLO DEL BARROAUTONOMO

000000005YOLANDA LOPEZ ALONSO AUTONOMO

000000006ANTONIO VILLA SUSO AUTONOMO

Otra opción que tiene el SORT es la siguiente:

SORT FIELDS=COPY

Con ella no indicamos ningún tipo de orden, por lo cual, el fichero de entrada se grabará en salida con el mismo orden.

INCLUDE

Filtra los registros deseados por la condición que se indique:

//SORT001 EXEC PGM=SORT,PARM=('DYNALLOC=(SYSALLDA,32)')

//SORTIN DD DSN=nombre.fichero.entrada1,DISP=SHR

// DD DSN=nombre.fichero.entrada2,DISP=SHR

//SORTOUT DD DSN=nombre.fichero.salida1,

// DISP=(,CATLG,DELETE),SPACE=(CYL,(500,100))

//SYSOUT DD SYSOUT=*

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

SORT FIELDS=COPY

INCLUDE COND=(I,L,T,C,V)

I – Inicio. Posición donde empieza el campo por el que se quiere filtrar

L – Longitud máxima del campo por el que se quiere filtrar

T – Tipo de dato del campo que se quiere filtrar:

CH - Carácter o numérico normal(sin COMP)

BI - Hexadecimal (campos COMP)

C – Condición de la igualdad que se quiere realizar:

EQ – Igual

NE - Distinto

GE – Mayor o igual

GT - Mayor

...

Descargar como (para miembros actualizados)  txt (50.8 Kb)  
Leer 33 páginas más »
Disponible sólo en Clubensayos.com