Ver cambios realizados en un fichero

Cuando estamos editando un fichero en ISPF, tenemos disponible el comando COMPARE SESSION, que nos muestra los cambios realizados desde que comenzamos a editar el dataset. Por ejemplo, dada la siguiente SYSIN de un Sort. Si eliminamos el SUM FIELDS=NONE y modificamos el OUTREC BUILD de salida, el comando COMPARE SESSION marcará los cambios realizados…

Comprobar si un fichero está vacío con IDCAMS

La utilidad IDCAMS permite comprobar si un fichero está vacío mediante el comando PRINT, que se utiliza para listar el contenido de un archivo. Cuando solo interesa hacer la comprobación de fichero vacío, se añade el parámetro COUNT(1) para que solo se liste el primer registro. El paso de JCL devuelve 0 si existe al…

¿Qué es el BIND?

El bind es un proceso por el que debe pasar todo programa COBOL z/OS que contenga instrucciones SQL. Se trata de una particularidad del mundo mainframe que llama la atención de muchos novatos, que se hacen la siguiente pregunta: ¿por qué es necesario este proceso y no se genera el ejecutable DB2 directamente en la…

Contadores y totales por campo clave en un Sort

Cuando en un Sort queremos obtener totales o contadores por un campo clave, y además deseamos mostrarlos con formato de informe o con un texto de acompañamiento, podemos utilizar los parámetros de informe de la instrucción OUTFIL. Los analizamos en un artículo anterior, pero aquí solo vamos a usar los que necesitamos para nuestro propósito….

Fecha del sistema en un JCL (Sort)

Para incluir la fecha de sistema en un Sort, ya sea al construir los registros (INREC, OUTREC, BUILD) o en una condición (INCLUDE, OMIT, IFTHEN, etc.), tenemos disponibles las siguientes constantes: Constante Formato DATE1  C’yyyymmdd’ DATE1(c) C’yyyycmmcdd’ DATE1P P’yyyymmdd’ DATE2 C’yyyymm’ DATE2(c) C’yyyycmm’ DATE2P P’yyyymm’ DATE3 C’yyyyddd’ DATE3(c) C’yyyycddd’ DATE3P P’yyyyddd’ DATE4 C’yyyy-mm-dd-hh.mm.ss’ DATE5 C’yyyy-mm-dd-hh.mm.ss.nnnnnn’…

DB2 SQL Joins

An SQL join is a query that combines data from two tables using one or more common columns to create a relationship between both tables. The four main join types produce the following results (T1 is the first table and T2 the second): INNER JOIN: Rows from T1 and T2 that satisfy the join condition…

Contar caracteres de una variable alfanumérica en COBOL

En el COBOL de z/OS, la función intrínseca LENGTH OF devuelve el número de bytes que ocupa una variable. Por lo tanto, utilizada con una variable alfanumérica, devolverá el total de bytes que ocupa la variable, aunque todos ellos contengan espacios. Sin embargo, en muchos casos nos interesa conocer el número de carácteres que contiene…

Preguntas y respuestas sobre JOINKEYS

1 – ¿Hay que ordenar previamente los ficheros? No, ya que JOINKEYS los ordena automáticamente. De todas formas, si sabemos que los ficheros ya están ordenados podemos usar el operador SORTED para reducir el tiempo de ejecución del paso. Con este operador se evita la ordenación, aunque JOINKEYS comprueba que los ficheros estén realmente ordenados…

Numerar registros y añadir contador en un Sort

Numerar registros Al procesar un fichero, muchas veces surge la necesidad de numerar los registros. Es decir, incluir un en cada registro un número secuencial que identifique la posición del mismo en el fichero. Con DFSORT podemos hacerlo incluyendo el operador SEQNUM al construir un registro mediante BUILD/INREC/OUTREC. SEQNUM permite indicar la longitud y el…

Niveles de aislamiento en DB2

Cuando varias transacciones DB2 se ejecutan simultáneamente, pueden darse los problemas que se detallan a continuación: Actualizaciones perdidas: se producen cuando dos transacciones leen los mismos datos e intentan actualizarlos a la vez, lo que provoca que una de los dos actualizaciones se pierda. Por ejemplo: las transacciones A y B leen la misma fila…