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!

July 23, 2007

Oracle

2 comments

Como todos sabemos el optimizador por defecto en las bases de datos Oracle10g es el CBO (Cost Based Optimizer), el cual es un optimizador de avanzada que utiliza estadísticas de las tablas e indices para poder obtener buenos planes de ejecución. Pero a veces caemos en la cuenta de que esto no es siempre así.

Uno de los principales problemas que podemos encontrarnos es que las estadísticas sean incorrectas, lo cual le estaría dando información erronea al optimizador.

Ejemplo Continue reading →

July 4, 2007

Oracle

2 comments

¿Tenemos problemas?

El otro dia intentando iniciar mi base de datos de prueba, una base hecha en Oracle XE 10g, se me aparecio el siguiente problema:

sqlplus SYS/SYS@XE AS SYSDBA
ERROR:
ORA-12514: TNS:listener does not currently know of service requested in
connect descriptor

La búsqueda del error

Continue reading →

March 14, 2007

Oracle

5 comments

Algunas veces es necesario utilizar caracteres especiales en alguna query que utilicemos en SQL*Plus.
Un problema común es el de la comillas simples ('):

SQL> INSERT INTO tmp_table (texto) VALUES ('Johnson's house');
ERROR: ORA-01756: quoted string not properly terminated

Si queremos insertar una comilla simple solo debemos ponerla doble:

SQL> INSERT INTO tmp_table (texto) VALUES ('Johnson''s house');
1 ROW created.

Continue reading →