Publicado el Dejar un comentario

ORA-30926: unable to get a stable set of rows in the source tables. Merge Oracle.

Oracle envía el error “ORA-30926: unable to get a stable set of rows in the source tables” cuando hacer una actualización a una tabla con la comando MERGE.

Este error es debido a que la sentencia está tratando de actualizar una misma fila (row) más de una vez. La solución es revisar los resultados que arroja la tabla o la consulta, que estamos utilizando para hacer la actualización, para que no arroje filas duplicadas.

¡Saludos!

Publicado el Dejar un comentario

Abrir archivos XML con Excel

A veces algunos datos que necesitamos analizar vienen en formato XML y lo queremos hacer con Excel. Si vemos con el Bloc de Notas el contenido de un archivo XML veremos algo como esto:

Para importar un archivo XML a nuestra hoja de Excel necesitamos que esté visible la ficha Programador en nuestro menú. Si este ficha no está visible, habrá que activarla.

Para activarla vaya a Archivo-> Opciones:Aparecerá la ventana Opciones de Excel. Ahí seleccione Personalizar cinta de opciones y luego active la casilla Programador de las opciones de Pestañas principales:

Una vez activada la ficha Programador, la seleccionamos y damos clic en Importar, en la ventana Importar XML navegamos hasta donde está ubicado nuestro archivo XML, lo seleccionamos y oprimimos el botón Importar:

En el diálogo siguiente damos Aceptar:

Aparece el diálogo Importar datos, le decimos que inserte los datos a partir de la celda A1 (o en la que se desee o en una nueva hoja de cálculo) y damos Aceptar:

Automáticamente Excel da formato de tabla a los datos importados:

Espero y les sea útil este post. No olvide visitar a los anunciantes para que podamos seguir haciendo tips como estos.

¡Hasta luego!

Publicado el Dejar un comentario

Obtener las líneas que contengan direcciones ip de archivos de texto o salida de algún comando en Windows

A veces es necesario extraer de archivos de de texto, como archivos .log de algunos sistemas, las líneas que contengan direcciones IP, ya sea para análisis u otro motivo.

El linux existen herramientas o comandos como grep que permiten hacer esto, en Windows está el comando findstr, que aunque no tan poderoso como el grep, permite hacer lo que estamos buscando.

El comando findstr se debe ejecutar desde una consola o ventana de comandos de Windows, aunque es posible también incluirlo en archivos .bat (procesamiento por lotes) si así se requiere.

En el ejemplo siguiente obtendremos las lineas de salida del comando ipconfig que contengan direcciones IP. Ipconfig es el comando de Windows que nos permite ver la configuración de los adaptadores de red de nuestro equipo Windows. La imagen siguiente muestra los resultados de ejecutar el comanda ipconfig:

Ahora, vamos a obtener, de ese resultado, sólo las lineas que contienen una dirección IP con ayuda del comando findstr. Para eso ejecutaríamos el comando:

ipconfig | findstr /r "[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*"

Lo que nos daría el siguiente resultado:

Como podemos ver en la imagen, el comando findstr muestra sólo las lineas de salida del comando ipconfig que contienen una dirección IP, el resto de las lineas son ignoradas.

Para obtener las lineas con IPs de un archivo de texto llamado archivo.log, la sintaxis del comando sería:

findstr /r "[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*" archivo.log

Para más información y usos del comando findstr pueden visitar la página del comando.

¡Hasta luego!