- Este tópico contém 5 respostas, 3 vozes e foi atualizado pela última vez 12 anos, 5 meses atrás por Anônimo.
-
AutorPosts
-
13 de junho de 2012 às 11:18 pm #103818Anô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.13 de junho de 2012 às 11:51 pm #103819rmanParticipante@DSouza007
A função LENGTH conta o tamanho da string.
SELECT LENGTH('TESTE') FROM DUAL
14 de junho de 2012 às 12:12 am #103820Anô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.
14 de junho de 2012 às 12:47 am #103822fsitjaParticipanteTeria 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
14 de junho de 2012 às 4:30 pm #103830rmanParticipante@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.
14 de junho de 2012 às 4:51 pm #103831AnônimoEu 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.
-
AutorPosts
- Você deve fazer login para responder a este tópico.