Pular para o conteúdo
Visualizando 6 posts - 1 até 6 (de 6 do total)
  • Autor
    Posts
  • #103818
    Anônimo

      Boa tarde pessoal,
      estou com uma dificuldade e não encontrei no forum uma resposta que pudesse me ajudar.
      Gostaria de saber se existe alguma forma de contar os caracteres de um campo? Eu não quero saber o tamanho do campo e sim quantos caracteres foram alocados nele, porém o bendito do campo é do tipo CHAR. Isso é possível no PL?

      Tenho uma query que traz todas as informações da tabela onde o campo CHASSI tenha mais de 17 caracteres preenchidos ou seja NULO, se puderem me ajudar com essa lógica agradeço também.

      Resumindo, preciso contar quantos caracteres existem no campo N e depois fazer uma comparação para trazer o resultado.

      Abraços.
      Muito obrigado.

      #103819
      Avatar de rmanrman
      Participante

        @DSouza007

        A função LENGTH conta o tamanho da string.


        SELECT LENGTH('TESTE') FROM DUAL

        #103820
        Anônimo

          @DSouza007

          A função LENGTH conta o tamanho da string.

          
          SELECT LENGTH('TESTE') FROM DUAL
          

          Obrigado Rman, mas eu já testei essa função e pra este caso ela não funciona, por ser um campo do tipo CHAR(40) sempre que uso o LENGTH ele me tras 40 caracteres, mas na realidade tem menos e varia entre 0 e 20. Esse campo que preciso contar os caracteres deve receber 17 caracteres sempre (padrão), mas por alguns problemas ele está variando e precisamos identificar os registros errados.

          #103822
          Avatar de fsitjafsitja
          Participante

            Teria que remover apenas espaços em braco e saber o tamanho? Se for isso basta um trim. Ou um replace caso precise tirar espaços em branco do “miolo” da string também.

            
            SQL> create table teste_char (char_col char(40));
            
            Table created
            SQL> insert into teste_char values ('TESTE');
            
            1 row inserted
            SQL> insert into teste_char values ('1 3 5 7 9   ');
            
            1 row inserted
            SQL> insert into teste_char values ('123456789');
            
            1 row inserted
            SQL> insert into teste_char values ('123456789         ');
            
            1 row inserted
            SQL> insert into teste_char values ('         123456789         ');
            
            1 row inserted
            SQL> commit;
            
            Commit complete
            SQL> select char_col,
              2         length(trim(char_col)) tam_trimmado,
              3         length(replace(char_col, ' '))  tam_sem_espaco,
              4         length(char_col) tam_total
              5    from teste_char;
            
            CHAR_COL                                 TAM_TRIMMADO TAM_SEM_ESPACO  TAM_TOTAL
            
            <hr />
            
            TESTE                                               5              5         40
            1 3 5 7 9                                           9              5         40
            123456789                                           9              9         40
            123456789                                           9              9         40
                     123456789                                  9              9         40
            SQL> drop table teste_char;
            
            Table dropped
            
            #103830
            Avatar de rmanrman
            Participante

              @DSouza007

              Esse detalhe do LENGTH e CHAR eu não sabia, é necessário utilizar o TRIM antes para saber quantos caracteres existem dentro do campo CHAR.

              #103831
              Anônimo

                Eu já ouvi falar do TRIM, mas não me lembrava para que servia.

                Pessoal, mais uma vez muito obrigado, isso resolveu meu problema.

                Este forum é muito bom.

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