Pessoal, existe uma maneira mais funcional para descobrir se o conteúdo de um varchar2 é composto somente de letras?
Pensei em limpar caracteres especiais e números com o replace() e depois medir o tamanho da variável e comparar com o tamanho original, se for diferente é porque tinha "lixo".
Mas fazer dessa forma me parece muito mecânico, alguém já desenvolveu algo mais funcional?
Descobrir se valor do campo é somente letra
-
- Moderador
- Mensagens: 1396
- Registrado em: Sex, 01 Fev 2008 2:06 pm
- Localização: Rio de Janeiro - RJ
- Contato:
você pode dar um to_number e esperar uma exceção
-
- Rank: DBA Pleno
- Mensagens: 232
- Registrado em: Qui, 26 Nov 2009 1:05 pm
- Localização: SP
Ricardo H. Tajiri
Oi pyro,
No 10g/11g você consegue localizar os registros que possuem SOMENTE LETRAS usando REGEXP_LIKE.
Vou deixar de lição de casa o retorno de registros que só possuem número... A mudança é mínima neste código e até meio óbvia...
No 10g/11g você consegue localizar os registros que possuem SOMENTE LETRAS usando REGEXP_LIKE.
WITH tabela AS (
SELECT 'aaS123Iiouh' campo FROM DUAL
UNION ALL
SELECT 'aaSadsUIiouh' FROM DUAL
UNION ALL
SELECT 'aaSAAAIiouh' FROM DUAL
UNION ALL
SELECT '00' FROM DUAL
UNION ALL
SELECT '123a' FROM DUAL
UNION ALL
SELECT '' FROM DUAL)
SELECT campo
FROM tabela
WHERE REGEXP_LIKE(campo,'^[[:alpha:]]+$');
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Google [Bot] e 1 visitante