Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save EdgardoEhiyan/4a40ee7084674bcbba21ed4283cbe340 to your computer and use it in GitHub Desktop.
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
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