none
Alteração de caracter em uma tabela RRS feed

  • Pergunta

  • Pessoal,

    tenho uma tabela onde preciso alterar no campo texto tirar o caracter "PIPE |" por espaço, só que como é um campo texto ele nao tem lugar fixo em cada linha o PIPE esta em uma posição são 153 linhas, preciso alterar isso uma a uma?

    quinta-feira, 14 de março de 2013 20:03

Respostas

  • Ele da erro.

    Argument data type text is invalid for argument 1 of replace function

    update TEXTO_PED_VENDA set PedVendaTexto = replace(PedVendaTexto, '|', ' ')

    • Marcado como Resposta Renata Cardoso segunda-feira, 18 de março de 2013 18:13
    sexta-feira, 15 de março de 2013 11:49

Todas as Respostas

  • Renata, voce não precisa fazer um a um, basta um replace, ex:

    update tabela
    set campo = replace(campo, '|', ' ')


    Alexandre Matayosi Conde Mauricio.

    quinta-feira, 14 de março de 2013 20:16
  • Ele da erro.

    Argument data type text is invalid for argument 1 of replace function

    update TEXTO_PED_VENDA set PedVendaTexto = replace(PedVendaTexto, '|', ' ')

    • Marcado como Resposta Renata Cardoso segunda-feira, 18 de março de 2013 18:13
    sexta-feira, 15 de março de 2013 11:49
  • Renata,

    Muito provavelmente seu datatype é um text ou ntext por isso esta dando erro, os parametros de entrada da função devem ser VARCHAR, NVARCHAR, CHAR ou NCHAR. Segue um script de exemplo:

    IF(OBJECT_ID('Forum') IS NOT NULL)
    	DROP TABLE Forum
    
    CREATE TABLE Forum
    (
    	Texto VARCHAR(100)
    )
    
    INSERT INTO Forum(Texto)
    VALUES ('Fabrizzio | Caputo')
    
    UPDATE Forum
    SET Texto = REPLACE(Texto, '|', '')
    GO
    
    IF(OBJECT_ID('Forum') IS NOT NULL)
    	DROP TABLE Forum
    
    CREATE TABLE Forum
    (
    	Texto TEXT
    )
    
    INSERT INTO Forum(Texto)
    VALUES ('Fabrizzio | Caputo')
    --Erro gerado aqui
    UPDATE Forum
    SET Texto = REPLACE(Texto, '|', '')
    GO
    
    --Para corrigir
    IF(OBJECT_ID('Forum') IS NOT NULL)
    	DROP TABLE Forum
    
    CREATE TABLE Forum
    (
    	Texto TEXT
    )
    
    INSERT INTO Forum(Texto)
    VALUES ('Fabrizzio | Caputo')
    
    UPDATE Forum
    SET Texto = REPLACE(CAST(Texto AS VARCHAR(8000)), '|', '')
    GO


    Fabrizzio A. Caputo
    MCT
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    ITIL V3 Foundation
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com

    sexta-feira, 15 de março de 2013 11:55
    Moderador
  • Renata, bom dia ! Como o Fabrizzio disse funcionaria se o seu campo fosse varchar, char, etc e não text, para isto somente converta no update o seu campo para varchar fazendo o replace.

    Alexandre Matayosi Conde Mauricio.

    sexta-feira, 15 de março de 2013 12:03