January 7, 2009

Oracle

6 comments

Si alguna vez se encontraron en la necesidad de convertir un número decimal a binario y viceversa, se habrán dado cuenta que Oracle no incluye una función para poder realizarlo fácilmente.

Solamente existe la función "bin_to_num", la cual tiene el siguiente funcionamiento:

BIN_TO_NUM( expr1, expr2, ... expr_n)

Donde expr1, expr2, ... expr_n deben ser "0" o "1".

Es por esto que decidí crear las siguientes funciones:
"FNC_NUMBER_TO_BINARY" y "FNC_NUMBER_FROM_BINARY".

Para hacerlo me basé en unas funciones que encontré en este link, pero corrigiéndoles algunas cosas que no funcionaban adecuadamente.

El código

La función "FNC_NUMBER_TO_BINARY" es así:
Continue reading →

October 2, 2008

Oracle

7 comments

Para poder exportar información desde una base de datos Oracle, lo conveniente es usar SQL*Plus desde la linea de comandos.

Este producto que viene incluido con el cliente Oracle, nos permite desde linea de comandos ejecutar comandos SQL y lo mejor de todo es que es muy útil para ser usado en scripts.

La exportación de los datos la podemos realizar siguiendo distintos formatos destinos, entre los cuales los más populares son: CSV (Comma Separated Values), texto plano separado por "|" (pipe) y texto plano separado por tab.
Lo que cambia entre ellos es el separador que se use para delimitar las columnas que hayamos consultado.

Exportar a CSV:

Continue reading →

January 15, 2008

Oracle

2 comments

El problema

Hace poco tiempo me encontre con el siguiente mensaje de error en SQLPLUS*:

ORA-06502: PL/SQL: numeric or value error: host bind array too small

Este error surgía de querer ejecutar un PL/SQL que hacia uso de dbms_output.put_line. Lamentablemente el mensaje de error no indicaba la linea del problema y tampoco había demasiada información en Internet sobre ello, y lo peor de todo es que en otra PC el mismo PL/SQL andaba de maravillas!

La solución

Al ejecutar el PL/SQL en la otra PC me di cuenta de que tenía instalado una versión más nueva del cliente de Oracle SQL*Plus: Release 10.2.0.1.0 y que nuestra base de datos es una Oracle 10G R2 version 10.2.0.2.0.

Sin embargo en mi PC tenía el cliente 10.1.0.1.0, asi que desinstalé el cliente e instalé la versión 10.2 del cliente y "mágicamente" el problema se solucionó!

Espero que les haya servido!!

Saludos!

January 11, 2008

Oracle

37 comments

El problema

Muchas veces nos vemos en la necesidad de invocar un Web Service directamente desde la base de datos.

La utilización de Java dentro de la base de datos no siempre es una opción disponible, así que tuve que buscar una solución que sólo utilizara código PL/SQL.

La solución

Podemos utilizar el package UTL_HTTP para hacer los request SOAP directamente al servidor destino, esto si bien es más complicado que utilizar las clases proxy, nos evita tener que cargar Java en la base de datos.

La forma de invocar el package UTL_HTTP es la siguiente:

Continue reading →

January 11, 2008

Oracle

2 comments

El problema

Luego de instalar el nuevo SQL Developer de Oracle, me di cuenta de que no me podía conectar a ninguna base de datos, el error rezaba:

ORA-00604: se ha producido un error a nivel 1 de SQL recursivo
ORA-12705: No se puede acceder a los archivos de datos NLS o se ha especificado un entorno no válido.

La solucion

Hay que editar el archivo "sqldeveloper.conf" y agregarle las siguientes lineas:

AddVMOption -Duser.region=us
AddVMOption -Duser.language=en

Listo! una vez hecho esto pude conectarme sin problemas.

Espero que les sirva, saludos!