sexta-feira, setembro 08, 2006

Oracle XE: ORA-12899: Valor muito grande para a coluna...

*******************************************************************
Estou com o seguinte problema: Instalei o Oracle 10g XE e criei
uma
> tabela com um campo que suporta 30 caracteres - varchar2(30) - e
estou
> tentando inserir a seguinte linha mas dá um erro que segue abaixo:
>
> este comando funciona normal
> CREATE TABLE operacao_nota
> (
> codigo NUMERIC(8) NOT NULL,
> descricao VARCHAR2(30) NOT NULL,
> CONSTRAINT pk_operacao_nota_codigo PRIMARY KEY (codigo)
> );
*******************************************************************

Este erro ocorreu pq o valor de NLS_CHARACTERSET está como AL32UTF8.

Se alterar o valor para WE8MSWIN252 o erro deixa de ocorrer.

No charset "AL32UTF8", o 32 significa qua a base de dados ao armazenar caracteres acima de ASCII-127 (ie, caracteres acentuados, e especiais como o sinal de euro - NÃO É só "vogais e consoantes"!! ), vai poder usar até 32 bits (4 bytes) para esses
caracteres, e o datatype VARCHAR2(30) está reservando apenas 30
bytes.

Fonte

Sem comentários: