Created
August 6, 2020 19:33
-
-
Save EdgardoEhiyan/4a40ee7084674bcbba21ed4283cbe340 to your computer and use it in GitHub Desktop.
Convierte archivo plano de un solo campo a una Tabla SQL con formato (DB2 for i ) Usando CL con SQL embebido
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
PGM | |
RUNSQL SQL('DROP TABLE MSELE22.LEGAJO') + | |
COMMIT(*NONE) | |
MONMSG MSGID(SQL9010) | |
RUNSQL SQL('DROP TABLE MSELE22.NOMBRE') + | |
COMMIT(*NONE) | |
MONMSG MSGID(SQL9010) | |
RUNSQL SQL('DROP TABLE MSELE22.PREMIO') + | |
COMMIT(*NONE) | |
MONMSG MSGID(SQL9010) | |
RUNSQL SQL('DROP TABLE MSELE22.FPAGO') + | |
COMMIT(*NONE) | |
MONMSG MSGID(SQL9010) | |
RUNSQL SQL('DROP TABLE MSELE22.OBSERVACIONES') + | |
COMMIT(*NONE) | |
MONMSG MSGID(SQL9010) | |
/* GENERO PRIMERO TABLA DE LEGAJO */ | |
/* -------------------------- */ | |
RUNSQL SQL('CREATE TABLE MSELE22.LEGAJO AS + | |
(SELECT RRN(A) AS CLAVE2, ROW_NUMBER() OVER () AS CLAVE, + | |
SUBSTR(NOMBRE, 9, 10) AS LEGAJO FROM MSELE22.LISTADO AS A + | |
WHERE NOMBRE IN(SELECT NOMBRE + | |
FROM MSELE22.LISTADO WHERE NOMBRE LIKE ''%Legajo%'') + | |
ORDER BY CLAVE2 ASC) + | |
WITH DATA ') COMMIT(*NC) | |
/* GENERO TABLA DE NOMBRE */ | |
/* -------------------------- */ | |
RUNSQL SQL('CREATE TABLE MSELE22.NOMBRE AS + | |
(SELECT RRN(A) AS CLAVE2, ROW_NUMBER() OVER () AS CLAVE, + | |
SUBSTR(NOMBRE, 9, 30) AS NOMBRE FROM MSELE22.LISTADO AS A + | |
WHERE NOMBRE IN(SELECT NOMBRE + | |
FROM MSELE22.LISTADO WHERE NOMBRE LIKE ''%Nombre%'') + | |
ORDER BY CLAVE2 ASC) + | |
WITH DATA ') COMMIT(*NC) | |
/* GENERO TABLA DE PREMIO */ | |
/* -------------------------- */ | |
RUNSQL SQL('CREATE TABLE MSELE22.PREMIO AS + | |
(SELECT RRN(A) AS CLAVE2, ROW_NUMBER() OVER () AS CLAVE, + | |
SUBSTR(NOMBRE, 9, 10) AS PREMIO FROM MSELE22.LISTADO AS A + | |
WHERE NOMBRE IN(SELECT NOMBRE + | |
FROM MSELE22.LISTADO WHERE NOMBRE LIKE ''%Premio%'') + | |
ORDER BY CLAVE2 ASC) + | |
WITH DATA ') COMMIT(*NC) | |
/* GENERO TABLA DE FORMA DE PAGO */ | |
/* -------------------------- */ | |
RUNSQL SQL('CREATE TABLE MSELE22.FPAGO AS + | |
(SELECT RRN(A) AS CLAVE2, ROW_NUMBER() OVER () AS CLAVE, + | |
SUBSTR(NOMBRE, 16, 30) AS FORMA_PAGO FROM MSELE22.LISTADO AS A + | |
WHERE NOMBRE IN(SELECT NOMBRE + | |
FROM MSELE22.LISTADO WHERE NOMBRE LIKE ''%Forma de P%'') + | |
ORDER BY CLAVE2 ASC) + | |
WITH DATA ') COMMIT(*NC) | |
/* GENERO TABLA DE OBSERVACIONES */ | |
/* -------------------------- */ | |
RUNSQL SQL('CREATE TABLE MSELE22.OBSERVACIONES AS + | |
(SELECT RRN(A) AS CLAVE2, ROW_NUMBER() OVER () AS CLAVE, + | |
SUBSTR(NOMBRE, 16, 30) AS OBSERVACIONES FROM MSELE22.LISTADO AS A + | |
WHERE NOMBRE IN(SELECT NOMBRE + | |
FROM MSELE22.LISTADO WHERE NOMBRE LIKE ''%Observaciones%'') + | |
ORDER BY CLAVE2 ASC) + | |
WITH DATA ') COMMIT(*NC) | |
/* GENERO TABLA FINAL CON TODOS LOS CAMPOS */ | |
/* -------------------------- */ | |
RUNSQL SQL('CREATE TABLE MSELE22.LISTADO2 AS + | |
(SELECT LEGAJO.LEGAJO, NOMBRE.NOMBRE, PREMIO.PREMIO, + | |
FPAGO.FORMA_PAGO, OBSERVACIONES.OBSERVACIONES + | |
FROM MSELE22.LEGAJO INNER JOIN MSELE22.NOMBRE + | |
ON LEGAJO.CLAVE=NOMBRE.CLAVE + | |
INNER JOIN MSELE22.PREMIO + | |
ON LEGAJO.CLAVE=PREMIO.CLAVE + | |
INNER JOIN MSELE22.FPAGO + | |
ON LEGAJO.CLAVE=FPAGO.CLAVE + | |
INNER JOIN MSELE22.OBSERVACIONES + | |
ON LEGAJO.CLAVE=OBSERVACIONES.CLAVE) + | |
WITH DATA ') COMMIT(*NC) | |
SNDPGMMSG ('ARCHIVO MSELE22.LISTADO2 GENERADO') | |
ENDPGM |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment