Uso a combinação de translate e replace abaixo:

 

replace(trim(translate( c_text

                                  
,'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðñòóôõöùúûüýÿ!&<>\' || chr(  9) || 
chr( 10) || chr( 13) || chr( 34) || chr( 39)

                                  
,'AAAAAACEEEEIIIINOOOOOUUUUYaaaaaaceeeeiiiionooooouuuuyy e   ' || chr(182) || 
chr(182) || chr(182) || chr(182) || chr(182)

                                  )

                                  ),chr(182),null

                                  );

 

Abraço

Sérgio Pennacchiotti

 

 

De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] 
Enviada em: Friday, June 09, 2017 11:27
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] Como remover o traço

 

  

@Mario Rodrigues,

 

 Tente utilizar essa função aqui:
 http://blog.gaudencio.net.br/2015/11/oracle-funcao-para-remover-caracteres.html

 

Essa função serve para remover caracteres especiais de string e deixar somente 
letras e numero, assim atende sua lógica e não precisa ficar pensando em 
utilizar replace.

 

Att,

Emerson

 

2017-06-09 9:42 GMT-03:00 Mario Rodrigues marioirodrig...@gmail.com 
<mailto:marioirodrig...@gmail.com>  [oracle_br] <oracle_br@yahoogrupos.com.br 
<mailto:oracle_br@yahoogrupos.com.br> >:

  

Pessoal,

 

Serio ... pq este funciona 

 

                SELECT  nvl(round(VALOR,2),0) into v_custo

                FROM TABELA1

                WHERE ITEM = replace(coditem,'-','') 

                ;

                

 e este não

                SELECT nvl(round(VALOR,2),0) INTO v_preco_original 

                FROM 

                 TABELA2

                WHERE CODIGO_ITEM =  replace(coditem,'-','') 

                ;

 

Tipo de dados do ITEM e CODIGO_ITEM são os mesmos.

 

O que mais eu posso ver???

 

 

 

Em 9 de junho de 2017 09:15, Mario Rodrigues <marioirodrig...@gmail.com 
<mailto:marioirodrig...@gmail.com> > escreveu:

Bom Dia pessoal

 

Pois eh ... ate criei uma funcão

 

FUNCTION CONVERTCODITEM(p_coditem in VARCHAR2)

   RETURN NUMBER

   IS item NUMBER(20);

   BEGIN

   SELECT NOVOITEM 

      INTO item 

      from(

      SELECT           

            SUBSTR(replace(p_coditem,'-',''), 1, 
LENGTH(replace(p_coditem,'-','')) - 1) NOVOITEM

      FROM DUAL);

 

      RETURN(item);

    END;

 

preciso que o codigo 4506-3 retorne somente 4506 ..

 

 

nao sei mesmo o motivo disso estar acontecendo, pois como falei em outro select 
em outra funcao funciona perfeitamente .. o tipo de dados é VARCHAR2 .. 

 

 

 

Em 9 de junho de 2017 00:14, 'Marcelino Mota' supo...@linguagem.com.br 
<mailto:supo...@linguagem.com.br>  [oracle_br] <oracle_br@yahoogrupos.com.br 
<mailto:oracle_br@yahoogrupos.com.br> > escreveu:

  

Mario,

 

Verifica o tipo de dado que você esta usando se é char ou varchar2 apesar de 
serem strings, se comportam de maneira diferente.

 

Att.

 

Marcelino

 

 

 





[As partes desta mensagem que não continham texto foram removidas]

      • Re: [... Vitor Junior vitorj...@gmail.com [oracle_br]
        • R... Vitor Junior vitorj...@gmail.com [oracle_br]
        • R... Mario Rodrigues marioirodrig...@gmail.com [oracle_br]
          • ... Luis Freitas lfreita...@yahoo.com [oracle_br]
            • ... Mario Rodrigues marioirodrig...@gmail.com [oracle_br]
              • ... Luis Freitas lfreita...@yahoo.com [oracle_br]
  • [oracle_br] Co... 'Marcelino Mota' supo...@linguagem.com.br [oracle_br]
    • Re: [orac... Mario Rodrigues marioirodrig...@gmail.com [oracle_br]
      • Re: [... Mario Rodrigues marioirodrig...@gmail.com [oracle_br]
        • R... 'Emerson S. Gaudencio' emerson.fen...@gmail.com [oracle_br]
          • ... 'Sergio Pennacchiotti' sergiofp...@yahoo.com.br [oracle_br]
          • ... Luis Freitas lfreita...@yahoo.com [oracle_br]
            • ... Mario Rodrigues marioirodrig...@gmail.com [oracle_br]

Responder a