Friday, June 20, 2014

Having Fun in C and C++

Making great ideas here... stay tuned! Coding new projects on IBM AIX, HP-UX, Solaris, Linux and Microsoft Windows Servers (multiple sessions using PuTTY) View Cesar Rivera's profile on LinkedIn

Sunday, March 9, 2014

Skill Digest #1

Public Portfolio - Digest #1

I'll publish more of my independent work as soon as possible. This post will be available until a Company can make me an offer.

Java


ArticleLinkTypeLanguage
Benchmarking in AIX Click to Read Skill English
Mapas con Divisiones Políticas Click to Read Skill Spanish
Atajo para System.out.println Click to Read Blog Entry Spanish
Equivalente de PHP "foreach" en Java Click to Read Blog Entry Spanish


Oracle


ArticleLinkTypeLanguage
Some SQL Queries Click to Read Skill English
Old Video Programming Reports Click to Read Skill English
Determinar tiempo transcurrido de ejecución en milisegundos Click to Read Blog Entry Spanish
Generación Series Numéricas Click to Read Blog Entry Spanish
Autoejecución de Comandos cuando se abre SQL*Plus Click to Read Blog Entry Spanish


Others


ArticleLinkTypeLanguage
Funny how Icon Information looks on Windows Binaries Click to Read Skill English


Android


ArticleLinkTypeLanguage
Solución de SDK Manager en Windows 7/8 Click to Read Skill Spanish
View Cesar Rivera's profile on LinkedIn

[Español] Old Oracle Forms/Reports 6i

Viejos tiempos cuando estaba aprendiendo Oracle Reports 6i

Friday, February 14, 2014

Java Benchmarking in AIX


I had a chance to test a benchmarking java application in Power5 Server with AIX 5.3 :




[Spanish]

Probando una aplicación que desarrollé en Java corriendo en servidor IBM Power5 con AIX 5.3. Estos fueron los resultados.


Friday, February 7, 2014

Sample Oracle Query

Sample Query for #1 - A Sample Query I do

SELECT p4, mensaje, 'Error en Etapa 1' x
  FROM (SELECT l.nro_ejecucion,
               DENSE_RANK () OVER (ORDER BY l.nro_ejecucion DESC) n,
               DECODE
                  (l.p4,
                   'NPA', '<p class="style12">Anulaci&oacute;n no posee su pago correspondiente.</p>'
                    || '<table border="0" class="style12">'
                    || '<tr><td>Fecha Transacci&oacute;n:</td><td><b>'
                    || SUBSTR (l.mensaje,
                               INSTR (l.mensaje, 'F:') + LENGTH ('F:'),
                                 INSTR (SUBSTR (mensaje,
                                                  INSTR (l.mensaje, 'F:')
                                                + LENGTH ('F:')
                                               ),
                                        ','
                                       )
                               - 1
                              )
                    || '</b></td><td>&nbsp;</td>'
                    || '<td>Tipo Transacci&oacute;n:</td><td><b>'
                    || SUBSTR (mensaje,
                               INSTR (mensaje, 'R1:') + LENGTH ('R1:'),
                                 INSTR (SUBSTR (mensaje,
                                                  INSTR (l.mensaje, 'R1:')
                                                + LENGTH ('R1:')
                                               ),
                                        ','
                                       )
                               - 1
                              )
                    || '</b></td></tr>'
                    || '<tr><td>Servicio: </td><td><b>'
                    || SUBSTR (mensaje,
                               INSTR (mensaje, 'S:') + LENGTH ('S:'),
                                 INSTR (SUBSTR (mensaje,
                                                  INSTR (mensaje, 'S:')
                                                + LENGTH ('S:')
                                               ),
                                        ','
                                       )
                               - 1
                              )
                    || '</b></td><td>&nbsp;</td>'
                    || '<td>Traza: </td><td><b>'
                    || SUBSTR (mensaje,
                               INSTR (mensaje, 'A:') + LENGTH ('A:'),
                                 INSTR (SUBSTR (mensaje,
                                                  INSTR (mensaje, 'A:')
                                                + LENGTH ('A:')
                                               ),
                                        ','
                                       )
                               - 1
                              )
                    || '</b></td></tr>'
                    || '<tr><td>Traza que anula: </td><td colspan=4><b>'
                    || SUBSTR (mensaje,
                               INSTR (mensaje, 'T:') + LENGTH ('T:'),
                                 INSTR (SUBSTR (mensaje,
                                                  INSTR (mensaje, 'T:')
                                                + LENGTH ('T:')
                                               ),
                                        ','
                                       )
                               - 1
                              )
                    || '</b></td></tr></table>',
                   'D1X', ' '
                    || '<table border="0"><tr><td class="style12">'
                    || 'Campo <b>Tipo Registro</b> no posee un valor v&aacute;lido ( <b>'
                    || l.p3
                    || '</b> ). Valores aceptables: <b>D1, D2, D3, D4</b>',
                   'NUME1', ' '
                    || '<table border="0"><tr><td class="style12">'
                    || 'Campo <b>Tipo de Transacci&oacute;n</b> no es num&eacute;rico ( <b>'
                    || l.p3
                    || '</b> ).'
                    || '</td></tr></table>',
                   'NUME2', ' '
                    || '<table border="0"><tr><td class="style12">'
                    || 'Campo <b>Tipo de Transacci&oacute;n</b> debe ser mayor a cero ( <b>'
                    || l.p3
                    || '</b> ).'
                    || '</td></tr></table>',
                   'FECE1', ' '
                    || '<table border="0"><tr><td class="style12">'
                    || 'Campo <b>Fecha Transacci&oacute;n</b> No V&aacute;lida ( <b>'
                    || l.p3
                    || '</b> ).'
                    || '</td></tr></table>',
                   'FEMA1', ' '
                    || '<table border="0"><tr><td class="style12">'
                    || 'Campo <b>Fecha Transacci&oacute;n</b>( <b>'
                    || l.p3
                    || '</b> ) debe ser menor a la fecha recaudaci&oacute;n ( <b>'
                    || l.p2
                    || '</b> ).'
                    || '</td></tr></table>',
                   'HORA1', ' '
                    || '<table border="0"><tr><td class="style12">'
                    || 'Campo <b>Hora Transacci&oacute;n</b> No V&aacute;lida ( <b>'
                    || l.p3
                    || '</b> ).'
                    || '</td></tr></table>',
                   'NUME2', ' '
                    || '<table border="0"><tr><td class="style12">'
                    || 'Campo <b>Monto Transacci&oacute;n</b> No V&aacute;lido ( <b>'
                    || l.p3
                    || '</b> ).'
                    || '</td></tr></table>',
                   'DIF2', ' '
                    || '<table border="0"><tr><td class="style12">'
                    || '<p>Diferencias entre monto indicado en la cabecera por el campo <b>Monto Recaudado</b> y el monto calculado en el detalle.</p>'
                    || '<table border="0" class="style12">'
                    || '<tr><td class="style12">Monto recaudado seg&uacute;n cabecera:</td>'
                    || '<td class="style12" align=right><b>'
                    || TO_CHAR (l.n1, '999,999,999,999.99')
                    || '</b></td>'
                    || '</tr><tr><td class="style12">Monto recaudado seg&uacute;n detalle:</td>'
                    || '<td class="style12" align=right><b>'
                    || TO_CHAR (l.n2, '999,999,999,999.99')
                    || '</b></td></tr></table>'
                    || '</td></tr></table>',
                   'DIF4', ' '
                    || '<table border="0"><tr><td class="style12">'
                    || '<p>Diferencias entre monto indicado en la cabecera por el campo <b>Monto Aplicado</b> y el monto calculado en el detalle.</p>'
                    || '<table border="0" class="style12">'
                    || '<tr><td class="style12">Monto Aplicado seg&uacute;n cabecera:</td>'
                    || '<td class="style12" align=right><b>'
                    || TO_CHAR (l.n1, '999,999,999,999.99')
                    || '</b></td>'
                    || '</tr><tr><td class="style12">Monto Aplicado seg&uacute;n detalle:</td>'
                    || '<td class="style12" align=right><b>'
                    || TO_CHAR (l.n2, '999,999,999,999.99')
                    || '</b></td></tr></table>'
                    || '</td></tr></table>',
                   'DIF8', ' ',
                      '<table border="0"><tr><td class="style12">'
                   || l.mensaje
                   || '</td></tr></table>'
                  ) mensaje,
               p4
          FROM LOG l,
               (SELECT fecha_proceso, archivo, nombre_nuevo,
                       'Error formato Archivo (Carga)' id_proceso,
                       nro_ejecucion
                  FROM (SELECT ROW_NUMBER () OVER (PARTITION BY da.archivo, da.nombre_nuevo ORDER BY da.estatus_split,
                                NVL (da.estatus_carga, 'E') DESC) n,
                               da.*
                          FROM ctcw_batch_archivos a,
                               ctcw_batch_archivos_det d,
                               ctcw_batch_archivos_det da
                         WHERE a.fecha_archivo = ('20140207')
                           AND a.fecha_archivo = d.fecha_archivo
                           AND a.bin = d.bin
                           AND d.bin = SUBSTR ('123456', -6)
                           AND a.nro_ejecucion = d.nro_ejecucion
                           AND a.fecha_proceso = d.fecha_proceso
                           AND a.archivo = d.archivo
                           AND d.estatus_carga IS NULL
                           AND d.archivo = da.archivo(+)
                           AND d.nombre_nuevo = da.nombre_nuevo(+))
                 WHERE n = 1 AND estatus_carga IS NULL) a
         WHERE l.id_proceso = 200
           AND l.fecha = a.fecha_proceso
           AND l.p1 = SUBSTR (a.nombre_nuevo, 1, 23)
           AND archivo = '123456_20140107_00'
           AND l.tipo_mensaje = 'ERR')
 WHERE n = 1
UNION
SELECT p4,
          '<table><tr><td class="style12">'
       || REPLACE (mensaje, CHR (10), '<br>')
       || '</td></tr></table>' mensaje,
       'Error en Etapa 2' x
  FROM (SELECT l.nro_ejecucion,
               DENSE_RANK () OVER (ORDER BY l.nro_ejecucion DESC) n,
               l.mensaje mensaje, p4
          FROM LOG l,
               (SELECT fecha_proceso, archivo, NULL nombre_nuevo,
                       'Error Split' id_proceso, nro_ejecucion
                  FROM (SELECT ROW_NUMBER () OVER (PARTITION BY a.archivo ORDER BY a.estatus_split DESC)
                                                                            n,
                               a.*
                          FROM ctcw_batch_archivos a
                         WHERE a.fecha_archivo = ('20140207')
                           AND a.bin = SUBSTR ('123456', -6)
                           AND a.estatus_split = 'ERR')
                 WHERE n = 1) a
         WHERE l.id_proceso = 401
           AND l.fecha = a.fecha_proceso
           AND l.p1 = SUBSTR (a.archivo, 1, 23)
           AND archivo = '123456_20140207_00'
           AND l.tipo_mensaje = 'ERR'
           AND l.mensaje NOT LIKE '%@%')
 WHERE n = 1
UNION
SELECT p4, mensaje, 'Error en Etapa 3' x
  FROM (SELECT l.nro_ejecucion,
               DENSE_RANK () OVER (ORDER BY l.nro_ejecucion DESC) n,
                  '<p class="cbra_b">'
               || DECODE
                     (l.n1,
                      1, 'El pago est&aacute; reversado en l&iacute;nea.',
                      2, 'El pago fue rechazado por CTC en l&iacute;nea.',
                      3, 'N&uacute;mero de Aprobaci&oacute;n no coincide.',
                      4, 'Pago anulado en l&iacute;nea.',
                      6, 'Pago ya estaba conciliado.',
                      5, 'Pago no posee <b>pcode</b> v&aacute;lido en l&iacute;nea.',
                      7, 'Pago duplicado en l&iacute;nea.',
                      8, 'Pago no aparece registrado en l&iacute;nea.',
                      9, 'Error en Conciliaci&oacute;n, revisar CTC.',
                      l.mensaje
                     )
               || '</p><table border="0" class="style12">'
               || '<tr><td>Fecha Transacci&oacute;n:</td><td><b>'
               || SUBSTR (l.mensaje,
                          INSTR (l.mensaje, 'R1:') + LENGTH ('F1:'),
                            INSTR (SUBSTR (mensaje,
                                             INSTR (l.mensaje, 'R1:')
                                           + LENGTH ('A1:')
                                          ),
                                   ','
                                  )
                          - 1
                         )
               || '</b></td></tr>'
               || '<tr><td>Servicio: </td><td><b>'
               || SUBSTR (mensaje,
                          INSTR (mensaje, 'S:') + LENGTH ('S:'),
                            INSTR (SUBSTR (mensaje,
                                             INSTR (mensaje, 'S:')
                                           + LENGTH ('R:')
                                          ),
                                   ','
                                  )
                          - 1
                         )
               || '</b></td><td>&nbsp;</td>'
               || '<td>Traza: </td><td><b>'
               || SUBSTR (mensaje,
                          INSTR (mensaje, 'A:') + LENGTH ('A:'),
                            INSTR (SUBSTR (mensaje,
                                             INSTR (mensaje, 'A:')
                                           + LENGTH ('S:')
                                          ),
                                   ','
                                  )
                          - 1
                         )
               || '</b></td></tr>'
               || '<tr><td>Modalidad: </td><td><b>'
               || SUBSTR (mensaje,
                          INSTR (mensaje, 'M:') + LENGTH ('M:'),
                            INSTR (SUBSTR (mensaje,
                                             INSTR (mensaje, 'M:')
                                           + LENGTH ('T:')
                                          ),
                                   ','
                                  )
                          - 1
                         )
               || '</b></td><td>&nbsp;</td>'
               || '<td>Empresa: </td><td><b>'
               || SUBSTR (mensaje,
                          INSTR (mensaje, 'E:') + LENGTH ('E:'),
                            INSTR (SUBSTR (mensaje,
                                             INSTR (mensaje, 'E:')
                                           + LENGTH ('M:')
                                          ),
                                   ','
                                  )
                          - 1
                         )
               || '</b></td></tr></table><br/>' mensaje,
               p4
          FROM LOG l,
               (SELECT fecha_proceso, archivo, nombre_nuevo,
                       'Error formato Archivo (Carga)' id_proceso,
                       nro_ejecucion
                  FROM (SELECT ROW_NUMBER () OVER (PARTITION BY da.archivo, da.nombre_nuevo ORDER BY da.estatus_split,
                                NVL (da.estatus_carga, 'E'),
                                da.nro_ejecucion DESC) n,
                               da.*
                          FROM ctcw_batch_archivos a,
                               ctcw_batch_archivos_det d,
                               ctcw_batch_archivos_det da
                         WHERE a.fecha_archivo = ('20140207')
                           AND a.fecha_archivo = d.fecha_archivo
                           AND a.bin = d.bin
                           AND d.bin = SUBSTR ('0000123456', -6)
                           AND a.nro_ejecucion = d.nro_ejecucion
                           AND a.fecha_proceso = d.fecha_proceso
                           AND a.archivo = d.archivo
                           AND d.estatus_carga IS NULL
                           AND d.archivo = da.archivo(+)
                           AND d.nombre_nuevo = da.nombre_nuevo(+))
                 WHERE n = 1 AND estatus_carga IS NULL) a
         WHERE l.id_proceso = 402
           AND l.fecha =
                  a.fecha_proceso 
           AND l.p1 = SUBSTR (a.nombre_nuevo, 1, 23)
           AND archivo = '123456_20140207_00'
           AND l.tipo_mensaje = 'ERR'
           AND l.p4 = 'PRE')

 WHERE n = 1;