Dia. Bem , aí vem a primeira pergunta, O QUE é "caracter especial" 
pra vc, são só os caracters ascii > 127 ??? Ou vc quer localizar e 
remover eventuais caracteres não-imprimíveis (de controle) como TABs 
e quetais ?   E é claro, só pra variar vc ** não nos dá ** a VERSÃO 
DO BANCO, o que seria de crucial importância : veja vc, no 10g vc tem 
tanto regular expressions quanto escape_sc , PRONTINHAS, iirc o nosso 
colega Márcio Portes já escreveu a respeito no blog dele... Já no 9i 
nope, vc TEM que montar algo com as funções de caracter & 
conversão ... 
  
 Então respondendo,  SE for 10g, vc obtém resposta para qquer caso 
com regexp ou funções de escape, e :
 
  - SE for 9i ou inferior E vc quer só localizar/remover caracteres > 
127, vc pode usar a função CONVERT convertendo a string lida pra 
US7ASCII e comparar a string convertida com a original, se forem 
diferentes há caracteres "especiais" aí
  
  - SE for 9i ou inferior E vc quer localizar também caracteres não-
imprimíveis, vc poderia eliminar os caracteres tipo com um TRANSLATE 
(string, chr(0) || chr(1) || ... lista de caracteres não-imprimíveis) 
e comparar com a string original, se for diferente há caracteres de 
interesse. Outra opção é vc pedir um DUMP da string em questão e ver 
se há nesse dump os códigos dos caracteres que te interessam.
  
 e há algumas variações do tema, mas de modo geral sem programar em 
PL/SQL (como normalmente é recomendado, operações em SQL apenas via 
de regra são mais eficientes) é isso aí...
 
 []s
 
   Chiappa
  
--- Em oracle_br@yahoogrupos.com.br, "Alex dos Santos" 
<[EMAIL PROTECTED]> escreveu
>
> Bom dia lista.
> 
> Eu gostaria de saber como eu verifico se uma coluna tem caracter 
especial no seu conteudo. O campo é Varchar.
> 
> Abraços
> Alex dos Santos
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>


Responder a