[Dica] REGEXP
Enviado: Ter, 31 Mar 2015 12:25 pm
É possível descobrir se um caracter é alpha, upper, pontuação, controle, espaço, etc, usando essa query:
A saída dessa query é uma matriz indicando com "1" onde o caracter se aplica.
select CHR(level),
decode(chr(level), regexp_substr(chr(level), '[[:graph:]]'), 1) is_graph,
decode(chr(level), regexp_substr(chr(level), '[[:blank:]]'), 1) is_blank,
decode(chr(level), regexp_substr(chr(level), '[[:alnum:]]'), 1) is_alnum,
decode(chr(level), regexp_substr(chr(level), '[[:alpha:]]'), 1) is_alpha,
decode(chr(level), regexp_substr(chr(level), '[[:digit:]]'), 1) is_digit,
decode(chr(level), regexp_substr(chr(level), '[[:cntrl:]]'), 1) is_cntrl,
decode(chr(level), regexp_substr(chr(level), '[[:lower:]]'), 1) is_lower,
decode(chr(level), regexp_substr(chr(level), '[[:upper:]]'), 1) is_upper,
decode(chr(level), regexp_substr(chr(level), '[[:print:]]'), 1) is_print,
decode(chr(level), regexp_substr(chr(level), '[[:punct:]]'), 1) is_punct,
decode(chr(level), regexp_substr(chr(level), '[[:space:]]'), 1) is_space,
decode(chr(level), regexp_substr(chr(level), '[[:xdigit:]]'), 1) is_xdigit
from dual
connect by level <= 300