none
Replace com adicionar 1 caracter RRS feed

  • Pergunta

  • update st
    set  design = Replace(design, 'Puf ', 'Puff') 
    where design like '%Puf %'

    Usei esta instrução para corrigir 600 nomes de Puf para Puff  mas acontece que agora aparece ex. PuffBOX em vez de Puf Box , mas preciso que apareça Puff Box  ou seja falta adicionar um espaço para separar as palavras como faço ?

    Alguém me pode ajudar ?

    segunda-feira, 18 de março de 2019 19:05

Respostas

Todas as Respostas

  • Deleted
    • Sugerido como Resposta Junior Galvão - MVPMVP segunda-feira, 18 de março de 2019 22:54
    • Marcado como Resposta Sanper segunda-feira, 25 de março de 2019 09:48
    segunda-feira, 18 de março de 2019 19:24
  • Boa noite,

    Sanper, experimente fazer uns testes dessa forma para ver se é obtido o resultado esperado:

    update st
    set design = Replace(design, 'Puff', 'Puff ') 
    where design like '%Puff[^ ]%'

    Espero que ajude


    Assinatura: http://www.imoveisemexposicao.com.br

    • Marcado como Resposta Sanper segunda-feira, 25 de março de 2019 09:51
    segunda-feira, 18 de março de 2019 23:30
  • Bom dia

    Obrigado pela ajuda mas :

    O código 2 funciona bem em base em base dados de testes , mas depois na base dados normal dá erro 

    Msg 8152, Level 16, State 14, Line 42
    String or binary data would be truncated.
    The statement has been terminated.

    haverá solução ?

    segunda-feira, 25 de março de 2019 09:48
  • Bom dia

    Obrigado pela ajuda mas :

    O código funciona bem em base em base dados de testes , mas depois na base dados normal dá erro 

    Msg 8152, Level 16, State 14, Line 42
    String or binary data would be truncated.
    The statement has been terminated.

    haverá solução ?

    segunda-feira, 25 de março de 2019 09:51
  • Snaper,

    Verifique o tamanho da coluna Design na tabela st em seu ambiente!

    Provavelmente o tamanho definido para armazenamento de dados nestas coluna é inferior a quantidade de caracteres que estão sendo gerados no comando Update.


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    segunda-feira, 25 de março de 2019 10:51
  • Deleted
    segunda-feira, 25 de março de 2019 10:52
  • Boa tarde

    José  já testei base dados de teste e sim tem limite 60 caracteres e quando nome está completo dá o erro .

    Já tentei aplicar o comando rtrim()  sem sucesso 

    UPDATE st
      set design= rtrim (replace (
                            replace (design, 'Puff', 'Puff '),
                            'Puff  ', 'Puff '))
      where design like '%Puff%';

    Será que me pode ajudar na forma de como aplicar o comando rtrim() ?


    • Editado Sanper segunda-feira, 25 de março de 2019 18:15
    segunda-feira, 25 de março de 2019 18:15
  • Deleted
    • Marcado como Resposta Sanper segunda-feira, 25 de março de 2019 19:12
    segunda-feira, 25 de março de 2019 18:30
  • Olá, recomendo antes de fazer o update verificar os casos que necessitam ser tratados, pois será um volume menor de dados com o tamanho de 60 posições.

    select * from st 
    where len (rtrim (design)) = 60

    Se ajudou, marque como resposta! Obrigado.


    terça-feira, 26 de março de 2019 11:48
  • Deleted
    • Marcado como Resposta Sanper quarta-feira, 27 de março de 2019 18:56
    terça-feira, 26 de março de 2019 14:04
  • Olá, perfeito! também pode ser verificado dessa forma.
    terça-feira, 26 de março de 2019 14:09