- Este tópico contém 8 respostas, 5 vozes e foi atualizado pela última vez 15 anos, 9 meses atrás por
burga.
-
AutorPosts
-
14 de junho de 2010 às 10:09 pm #94564
vramalhojr
ParticipanteOlá pessoal,
estou com problemas para alterar o tamanho da coluna de uma tabela. Segue abaixo informações do erro:
desc AREAINFORMATICA;
Nome
———————
NOME NOT NULL CHAR(15 CHAR)alter table AREAINFORMATICA modify NOME CHAR(15);
Relatório de erro:
Erro de SQL: ORA-01441: não é possível diminuir o tamanho da coluna porque algum valor é muito grande
01441. 00000 – “cannot decrease column length because some value is too big”select max(length(nome)) from AREAINFORMATICA;
MAX(LENGTH(NOME))
———————-
15Conforme podem analisar, o maior número de caracteres que tenho na coluna nome, é 15. Mesmo assim não consigo alterar a coluna para char(15).
Grato desde Já
14 de junho de 2010 às 11:34 pm #94566Peterson
ParticipanteCara, tô lendo algo aqui com relação ao seu problema, acho que para você decrescer o valor de uma coluna, todos os registros dela têm de ser nulos.
15 de junho de 2010 às 1:10 am #94569vramalhojr
ParticipanteOlá Peterson,
Cara, acredito que não seja isso, pois criei um scrip para alteração de 1500 tabelas e a maioria funcionou, dentre elas eu tenho outras colunas que tem valores not null e funcionou perfeitamente. Tive problema com mais ou menos 50 tabelas dessas 1500. O mais engreçado é que se eu der um:
alter table AREAINFORMATICA modify NOME CHAR(16);
consigo alterar normalmente. Porém essa informação não condiz com o resultado desse select:
select max(length(nome)) from AREAINFORMATICA;
MAX(LENGTH(NOME))
15
Vlw galera, quem puder me dar uma luz eu agradeço.
Abraços
15 de junho de 2010 às 4:27 pm #94578Peterson
Participanteestranho, no metalink o resultado informado foi esse que te disse, mas o ambiente que ele citou é o Oracle 9i. Pode ser que em versões mais recentes isso já seja suportado… pode ser também que eu esteja viajando na maionese.
15 de junho de 2010 às 4:38 pm #94579burga
ParticipanteVou arriscar um chute!
Dependendo do charset usado no teu banco, se um caractere possui acento ele pode ocupar mais de um byte.
Às vezes pode ser isto…
15 de junho de 2010 às 4:50 pm #94580vramalhojr
ParticipantePeterson,
A versão do Oracle aqui na empresa é 11g.
Burga,
Acertou na mosca, era isso mesmo, nessa tabela eu tinha registros com acentos. Como teste eu retirei os acentos e realizei o alter table novamente e funcionou perfeitamente.
Obrigado a todos pela ajuda,
Abraços.
16 de junho de 2010 às 10:57 pm #94626vieri
ParticipanteO chute do Burga está melhor que o do ataque da noss seleção…
rsrsÓtimo desfecho.
17 de junho de 2010 às 12:43 am #94633CleitonHanzen
Participante[quote=”vieri”:3qz9ozlx]O chute do Burga está melhor que o do ataque da noss seleção…
rsrsÓtimo desfecho.[/quote]
Hahahahaha….verdade…..
Oracle Crystal Ball Solution…..kkkkkk
17 de junho de 2010 às 10:34 pm #94660burga
Participante😆
Ainda tenho fé na nossa seleção, o problema é a JABULAAAAANII…
-
AutorPosts
- Você deve fazer login para responder a este tópico.