Entradas

Mostrando entradas de octubre, 2009

SQL Developer: DBMS_OUTPUT.PUT_LINE no imprime

Para imprimir por pantalla en pl/sql usualmene se suele usar el comando PUT_LINE. Sin embargo si lo ejecutamos en sqldeveloper no funciona ( o podría no funcionar). Un ejemplo simple de impresión: BEGIN DBMS_OUTPUT.PUT_LINE('Hola Mundo!'); END; Para que se muestre la salida debemos ejecutar: set serveroutput on Y obtendremos la siguiente salida cuando volvamos a ejecutarlo anonymous block completed Hola Mundo!

Bash: Medir tiempos de ejecución con time

Para medir los tiempos de ejecución en Bash podemos usar el comando time . Su sintaxis es así time comando_a_ejecutar Por ejemplo podriamos usar: time ls -l y la salida sería real 0m0.006s user 0m0.000s sys 0m0.004s Si queremos redirigir la salida, el comando time no la imprime por la salida estandar (out) si no por la err. Podemos guardar la salida de time en un archivo con la siguiente sintaxis (time ls) 2> time.txt Del mismo modo podemos realizar redirecciones más avanzadas almacenando la salida en un sitio y el time en otro. En el ejemplo medimos el tiempo de un bucle for usando time , almacenando el time en el archivo time.txt y la salida estandar en el archivo salida.txt #!/bin/bash time (for i in $(seq 1 5); do echo $i; done ) 2>> time.txt 1> salida.txt Si queremos que todo vaya al mismo sitio podemos usar lo siguiente: #!/bin/bash time (for i in $(seq 1 5); do echo $i; done ) > salida.txt 2>&1 Si queremos suprimir alguna de las salidas usaremos como desti

VirtualBox: error 0x80004005

Al ejecutar VirtualBox me salía el siguiente error Could not load the settings file '/home/dieguz/.VirtualBox/VirtualBox.xml'. Cannot convert settings from version '1.7-linux'. The source version is not supported. Código Resultado: NS_ERROR_FAILURE (0x80004005) Componente: VirtualBox Interface: IVirtualBox {557a07bc-e6ae-4520-a361-4a8493199137} El problema era que los archivos de configuración se correspondian a una versión más moderna que la que estaba ejecutando en ese momento. Para solucionarlo hay algunas opciones: a) Instalar una versión más moderna de VirtualBox b) Eliminar el directorio $HOME/.VirtualBox. De este modo que partiremos de una configuración en blanco. c) Podemos también a renombrar solamente el archivo de configuración con: mv $HOME/.VirtualBox/VirtualBox.xml $HOME/.VirtualBox/VirtualBox.xml.copia

Oracle: Character set válidos

La tabla V$NLS_VALID_VALUES contiene una lista con todos los valores válidos para los parámetros NLS SELECT * FROM V$NLS_VALID_VALUES WHERE parameter = 'CHARACTERSET'; Por ejemplo usando SELECT * FROM V$NLS_VALID_VALUES WHERE parameter = 'CHARACTERSET'; Podremos ver todos los posibles valores del character set, para funciones como convert select convert('leño','UTF8') from dual; y evitaremos el error " ORA-01482:juego de caracteres no soportado " por no saber como escribir el character set.

XML: Validar un XML contra un XSD desde línea de comando en Linux

Para validar un archivo XMl con un esquema XSD, en linux podemos usar la linea de comandos. Para ello usaremos el comando xmllint. Tenemos que tener instalado el paquete libxml2, si no lo tenemos y usapos Opensuse : sudo zypper in libxml2 Una vez instalado, para verificar el archivo xml ejecutaremos lo siguiente: xmllint --noout miarchivo.xml --schema miesquema.xsd El parámetro --noout es para evitar que imprima el arbol XML. Si hay errores los mostrará por la salida de error (stderr). Si queremos almacenar los errores haremos una redirección de la salida: xmllint --noout miarchivo.xml --schema miesquema.xsd 2> archivodeerrores.txt Si el archivo ha sido validado correctamente obtendremos el mensaje: miarchivo.xml validates Si queremos usar un DTD para validar un archivo usaremos la siguiente sintaxis: xmllint --valid --noout miarchivo.xml --dtdvalid miesquemadtd.dtd

SQLDeveloper: deshabilitar ampersand &

En Sqldeveloper cuando en el script encuentra el caracter '&' (ampersand) entiende que es una sustitución de variable, y nos pide que introduzcamos un valor para esa variable. Esto es especialmente molesto en inserciones, como por ejemplo entidades xml o html. inset into tabla(campo1,campo2) values ('you & me', 'otorrinolaringológica') En general podemos evitar este comportamiento poniendo al principio del código: SET SCAN OFF Con lo que deshabilitaremos que nos pregunte.