Archive for the ‘ORA-12899’ Category

ORA-12899: VALUE TOO LARGE FOR COLUMN

miércoles, agosto 27th, 2008

Tiempo atrás había postado un link que resolvía este problema bajo algunas circunstancias.
Tiempo después me encontré con el mismo problema en una máquina con otro sistema operativo, y tuve que aplicar otra solución y en ese momento no publiqué como lo solucioné. A pedido de Carlos, amigo visitante de mi sitio, quien me preguntó por email si existia alguna otra forma de solucionar este problema, acudí a mis apuntes y estoy dejando aquí 2 pasos que solucionaron mi problema particular en aquella época.

Básicamente este problema está relacionado con la conversión de caracteres de oracle, de un banco para otro. Léase NLS_CHARACTERSET.
Por tal motivo pido atención a ver cual es su problema en particular, para saber cual procedimiento aplicar, es por eso que dejo links relacionados, que me ayudaron a encontrar la solución en aquel momento.

Problema 1

c:\sqlplus /nolog
conn / as sysdba;

select parameter,value from nls_session_parameters where parameter=’NLS_LENGTH_SEMANTICS’;
alter system set nls_length_semantics=CHAR scope=both;

shutdown e startup para verificar.

Problema 2

c:\sqlplus /nolog
conn / as sysdba;
shutdown;
startup restrict;
Alter database character set INTERNAL_USE WE8ISO8859P1;
shutdown;
startup open;

A continuación links de apoyo, que me ayudaron mucho y les estoy muy agradecido.

http://www.oracle.com/technology/oramag/oracle/03-mar/o23sql.html
http://download.oracle.com/docs/cd/B19306_01/server.102/b14225/ch2charset.htm#g1015066
http://download.oracle.com/docs/cd/B19306_01/server.102/b14225/applocaledata.htm#i635016
http://users.telenet.be/oraguy.be/Characterset1.htm
http://www.oracle-base.com/articles/10g/CharacterSetMigration.php

Usted elija la opción y el character set que corresponda.

Fabricio De los Santos
Gerencia de Proyectos –
Consultoría GeneXus –
ERP – Sistemas de Misión Crítica – Bases de Datos.

Vea mis blogs en:
www.fabriciodelossantos.com

Tips: Error ORA-12899 insert value too large GeneXus Oracle

jueves, mayo 3rd, 2007

Exportamos una base de datos en Oracle 9 y queremos importar los datos en una base de datos Oracle 10

Nos surge el problema que algunos registros de algunas tablas no son importados y nos aparece el mensaje

IMP-00019: Fila rechazada debido al error ORACLE 12899
IMP-00003: se ha encontrado un error 12899 de ORACLE
ORA-12899: el valor es demasiado grande para la columna “Esquema”.”Tabla”.”Columna”

Este problema es porque la base de datos está configurada para multi-byte y caracteres con tilde o algún símbolo puede ocupar dos bytes lo cual hace sobrepasar la capacidad de almacenamiento.

Solución: Borrar el esquema nuevo en la base de datos Oracle 10. Cambiar la variable de ORACLE

NLS_LENGTH_SEMANTICS para CHAR

alter system set NLS_LENGTH_SEMANTICS=CHAR SCOPE=BOTH;

Reiniciar la base de datos, crear nuevamente el esquema, si estás usando GeneXus hacer un CREATE DATABASE, ahora con la variable setadada para char, las nuevas tablas se crearán contemplando esta propiedad.

Luego importa los datos nuevamente, y debería estar solucionado.

Fabricio De los Santos
Gerencia de Proyectos –
Consultoría GeneXus –
ERP – Sistemas de Misión Crítica – Bases de Datos.

Vea mis blogs en:
www.fabriciodelossantos.com