La orden Joinkey es de las ordenes más potentes y útiles en la creación de
código JCL, puesto que es la base en la que se basa cualquier cruce o
comparación de registros de dos ficheros.
Lo que hace
básicamente esta orden es comparar los dos ficheros que recibe por la clave que
se especifica y crear ficheros de salida con:
1) Registros que solo estén en el fichero 1
2) Registros que solo estén en el fichero 2
3) Registros que estén en ambos ficheros.
4) Combinaciones de los puntos anteriores.
Partes Joinkeys (1)
SORTJNK1 y SORTJNF2:
Primer y segundo fichero de entrada, respectivamente. De ahora en adelante los
llamaremos F1 y F2.
JOINKEYS: Describe
cuales son los campos por los que se va a realizar el MATCHING.
Se pueden especificar
varios campos en él. El campo puede estar ordenado en orden ascendente A o
descendente D.
La opción SORTED
indica que el fichero de entrada ya está ordenado por la clave. A pesar de
todo, se verifica si el fichero esta ordenado devolviendo un error si no lo
está, a no ser que se especifique NOSEQCK que indica que no se verifique el
orden del fichero.
JOIN:
Sentencia
JOIN
|
Explicación
|
Si no se
indica JOIN
|
INNER JOIN
(Registros que están en ambos ficheros)
|
JOIN UNPAIRED,F1
|
LEFT OUTER
JOIN (Registros que están en ambos , y que solo están en F1).
|
JOIN
UNPAIRED,F2
|
RIGHT
OUTER JOIN (Registros que están en ambos , y que solo están en F2).
|
JOIN
UNPAIRED
|
FULL OUTER
JOIN (Registros que están en ambos ,que solo están en F1 y que solo están en
F2).
|
JOIN
UNPAIRED,F1,F2
|
FULL OUTER
JOIN (Registros que están en ambos ,que solo están en F1 y que solo están en
F2).
|
JOIN
UNPAIRED,F1,ONLY
|
Solo
registros de F1 no emparejados
|
JOIN
UNPAIRED,F2,ONLY
|
Solo
registros de F2 no emparejados
|
JOIN
UNPAIRED,ONLY
|
Registros
de F1 y F2 no emparejados
|
JOIN
UNPAIRED,F1,F2,ONLY
|
Registros
de F1 y F2 no emparejados
|
Partes Joinkeys (2)
REFORMAT: Indica que
posiciones se van a incluir en el fichero de salida.
La ultima posición ( ?
) se substituirá en la última posición con :
1 si el registro solo tiene información de F1.
2 si el registro solo tiene información de F2.
B si el registro tiene información de F1 y F2.
SORTOUT: Cuando se
realiza el JOIN, se genera el fichero SORTOUT.
A partir del mismo y
con la sentencia OUTFIL se pueden crear diferentes ficheros de salida según las
especificaciones anteriores.
En el ejemplo que
veremos se crean 3. Con la opción BUILD se indica las posiciones a tomar en el
fichero SORTOUT.
Todas las herramientas
anteriormente pueden ser combinadas dentro de un paso de Joinkey, para
enriquecer el código y alcanzar la solución que buscamos
EJEMPLO
Fichero_entrada1
Fichero_entrada2
Fichero_intermedio
F1ONLY
F2ONLY
BOTH
Que tal tengo una duda por que en los ejemplos el Fichero_entrada1 y el Fichero_entrada2 desde el encabezado tienen el mismo contenido ? no me quedó claro.
ResponderBorrarObviamente es un error. El contenido del fichero 2 es F2ONLY + BOTH
ResponderBorrares una simulacion si esta correcto
ResponderBorrar