Pular para o conteúdo
Visualizando 9 posts - 1 até 9 (de 9 do total)
  • Autor
    Posts
  • #94564
    vramalhojr
    Participante

      Olá 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))
      ———————-
      15

      Conforme 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á

      #94566
      Peterson
      Participante

        Cara, 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.

        #94569
        vramalhojr
        Participante

          Olá 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

          #94578
          Peterson
          Participante

            estranho, 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.

            #94579
            burga
            Participante

              Vou 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…

              #94580
              vramalhojr
              Participante

                Peterson,

                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.

                #94626
                vieri
                Participante

                  O chute do Burga está melhor que o do ataque da noss seleção…
                  rsrs

                  Ótimo desfecho.

                  #94633
                  CleitonHanzen
                  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

                    #94660
                    burga
                    Participante

                      😆

                      Ainda tenho fé na nossa seleção, o problema é a JABULAAAAANII…

                    Visualizando 9 posts - 1 até 9 (de 9 do total)
                    • Você deve fazer login para responder a este tópico.