Te has preguntado como pasar tus archivos cobol a base de datos de una manera rapida y sencilla?
Pelo en pecho te da la solucion...
Las pruebas las hemos hecho sobre Acucobol GT, corriendo en un servidor Linux, pero la idea general es la misma para cualquier versión de Cobol.
Primero les dire que la versión de PostgresSQL que usamos no es la tipica que viene con cualquier ditribución Linux, si no que es una versión un poco mejorada (tiene funciones del motor Oracle), las cuales usaremos para pasar los archivos a la base de datos de una manera rapida.
PostgresPlus lo pueden descargar de
http://www.enterprisedb.com/ , es libre y gratuita.
Despues de instalado el PostgresPlus, lo que debemos hacer es un shell-script que generara un codigo fuente cobol, para luego correrlo y secuencializar el archivo de datos. Secuenzializar llamo a pasar el archivo de datos a texto plano.
Nuestro script tiene que ser capas de interpretar la XFD, FD Y SL del archivo de datos, ya que de estos archivos sacaremos la información para crear la tabla en la base de datos con sus atributos correspondientes. Ademas necesitamos estos archivos para analizar el archivo sencuenzializado y subirlo a la base de datos.
Un ejemplo del Shell-Script lo pueden descargar
Aqui.Basicamente es un script al que se llama desde linea de comandos, y se le pasa como parametros la ubicación de los archivo XFD, FD, SL y el largo total del registro principal "record", ademas tambien tiene 2 modalidades. -info (donde muestra la información de la tabla en la base de datos, si esta no existe la crea), y -seq (secuencializa y sube los datos a la tabla correspondiente).
Este shell-script genera el codigo fuente, analizando los tipos de datos (PIC 9, PIC S9, PIC S9V2, COMP-1, COMP-3 y mas).
Luego de secuencializado el archivo, este script genera un archivo de control donde indentifica cada atributo de la tabla, asociado a un numero de inicio y fin del caracter en la linea secuencializada.
Con este archivo de control y el archivo secuencial, llamamos a una función de PostgresPlus (edbldr) equivalente en Oracle al (sql-ldr). Este mismo sube el archivo secuencial a la base de datos. por las pruebas realizadas sobre un PC core2duo con 4gb RAM, corriendo SUSE ENTERPRISE 10, llegamos a subir unos 70.000 registros por segundo a base de datos.
Si tienes alguna duda, o quieres implemetar esta opción para tu entorno no dudes en dejar tu comentario y de esta manera nos pondremos a la brevedad en contacto para poder ayudarte.
Tags: COBOL POSTGRES