ORA-12899: value too large for column
OracleO que significa?
Um valor maior que o comprimento máximo definido foi gravado em uma coluna de caracteres/dados. Por exemplo, um texto de 15 caracteres não cabe em uma coluna VARCHAR2(10).
Por que acontece?
A largura da coluna é insuficiente para os dados; em um character set multibyte (UTF8) o número de caracteres excede o limite em bytes (semântica BYTE); um character set diferente durante a migração de dados; o resultado de uma concatenação ficando mais longo.
Como resolver
Amplie a coluna: ALTER TABLE my_table MODIFY (my_column VARCHAR2(100)); Para conteúdo multibyte, use a semântica CHAR: my_column VARCHAR2(100 CHAR). Se valores longos precisarem ser encurtados, trunque-os com SUBSTR. A mensagem de erro informa o comprimento real e o permitido; encontre o registro que estoura com LENGTH/LENGTHB.
Mais entradas deste banco
- ORA-06550line/column PLS-... PL/SQL compilation error
- ORA-04068existing state of packages has been discarded
- ORA-01427single-row subquery returns more than one row
- ORA-30926unable to get a stable set of rows in the source tables
- ORA-08103object no longer exists
- ORA-01843not a valid month
- ORA-14400inserted partition key does not map to any partition