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)
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
| Article | Link | Type | Language |
|---|---|---|---|
| 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
| Article | Link | Type | Language |
|---|---|---|---|
| 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
| Article | Link | Type | Language |
|---|---|---|---|
| Funny how Icon Information looks on Windows Binaries | Click to Read | Skill | English |
Android
| Article | Link | Type | Language |
|---|---|---|---|
| Solución de SDK Manager en Windows 7/8 | Click to Read | Skill | Spanish |
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ón no posee su
pago correspondiente.</p>'
|| '<table border="0"
class="style12">'
|| '<tr><td>Fecha
Transacció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> </td>'
|| '<td>Tipo
Transacció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> </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á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ón</b> no es
numérico ( <b>'
|| l.p3
|| '</b> ).'
|| '</td></tr></table>',
'NUME2', ' '
|| '<table border="0"><tr><td
class="style12">'
|| 'Campo <b>Tipo de Transacció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ón</b> No
Válida ( <b>'
|| l.p3
|| '</b> ).'
|| '</td></tr></table>',
'FEMA1', ' '
|| '<table border="0"><tr><td
class="style12">'
|| 'Campo <b>Fecha Transacción</b>( <b>'
|| l.p3
|| '</b> ) debe ser menor a la fecha recaudación (
<b>'
|| l.p2
|| '</b> ).'
|| '</td></tr></table>',
'HORA1', ' '
|| '<table border="0"><tr><td
class="style12">'
|| 'Campo <b>Hora Transacción</b> No
Válida ( <b>'
|| l.p3
|| '</b> ).'
|| '</td></tr></table>',
'NUME2', ' '
|| '<table border="0"><tr><td
class="style12">'
|| 'Campo <b>Monto Transacción</b> No
Vá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ú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ú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ú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ú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á reversado en línea.',
2, 'El pago fue
rechazado por CTC en línea.',
3, 'Número de Aprobación no coincide.',
4, 'Pago anulado en línea.',
6, 'Pago ya estaba conciliado.',
5, 'Pago no posee
<b>pcode</b> válido en línea.',
7, 'Pago duplicado en línea.',
8, 'Pago no aparece registrado en línea.',
9, 'Error en Conciliación, revisar CTC.',
l.mensaje
)
|| '</p><table border="0"
class="style12">'
|| '<tr><td>Fecha
Transacció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> </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> </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;
Subscribe to:
Posts (Atom)