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!

December 14, 2007

Oracle

1 comment

El problema

A veces nos encontramos con la necesidad de poder "loguear" el acceso a base de datos de una aplicación, por desgracia no todas las aplicaciones cuentan con esta funcionalidad, o si la poseen, no siempre cumplen todas nuestras espectativas.

La solución

Por suerte existe una forma de "loguear" el acceso a bases de datos Oracle y "espiar" lo que hace la aplicación. Esta solución consiste en utilizar un desarrollo de Sergey Sikorskiy:

http://www.geocities.com/ocispy/

Para poder utilizar esta excelente herramienta debemos:

  1. copiar el archivo "ocispy8i.dll" al directorio ORACLE_HOME/bin
  2. copiar el archivo "ocispy.cfg" a nuestro directorio raiz, por ejemplo "C:\ocispy.cfg"
  3. y por ultimo setear la variable de entorno ORA_OCI_UCBPKG a "ocispy8i" (set ORA_OCI_UCBPKG=ocispy8i).

Listo! con eso ya podemos empezar a loguear nuestra aplicacion.

Conclusión

Esta herramienta nos permite de una manera rapida y sencilla realizar un trace de cada aplicación que haga uso el cliente OCI de Oracle. Pueden revisar las opciones a incluir en el archivo "ocispy.cfg" y ajustarlo a sus necesidades.