Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Luiz Vieira

Apagar parte do conteúdo de vários campos

Recommended Posts

Pessoal, estou com um problema sério aqui pra resolver... Algum funcionário mal intencionado de uma empresa para onde faço um site entrou em nosso admin e alterou alguns campos, adicionando um script que direciona à um vírus. Como são milhares de arquivos registrados em nosso admin, seria um gasto de tempo enorme para retirar tal linha de script de um dos campos que contém o título do arquivo + a linha de código, pois onde estava só a linha de código consegui apagar tudo numa boa.

Então...

Quero saber se alguém pode me ajudar com uma linha de instrução SQL (estou no SQL Server2000, usando o Query Analyzer) que possa apagar parte do conteúdeo de um campo da tabela, mas mantendo uma parte. Por exemplo:

 

Tenho o campo ds_title com o conteúdo atual:

Stents e cirurgia não-cardíaca<script*** src=http://www.nihaorr1.com/1.js></script***>

 

E quero que o conteúdo fique apenas:

Stents e cirurgia não-cardíaca

 

Só que se eu usar a seguinte instrução em cada campo, vou levar semanas pra terminar tudo:

update tb_text set ds_title='Stents e cirurgia não-cardíaca' where ds_title='Stents e cirurgia não-cardíaca<script*** src=http://www.nihaorr1.com/1.js></script***>

 

Essa linha só permite ser utilizada em um campo por vez... Há um modo de executar uma instrução para alterar os mais de 2.000 cadastros de uma só vez, deletando apenas parte do campo (a parte <script*** src=http://www.nihaorr1.com/1.js></script****> - os **** são só para essa linha não dar problema aqui no fórum)???????

 

Quem ajudar vai salvar minha vida!!!!!! :wacko:

 

poste editado conforme regra n° 9

09ª Regra

É proíbido a abertura de tópicos com titulo: "ME AJUDE", "PELO AMOR DE DEUS", "ESTOU DESESPERADO", "URGENTE", "SOCORRO!", "HELP!", ou qualquer coisa similar, assim como utilizar Caixa Alta (letras todas em maiusculas) no titulo ou mesmo no corpo do tópico ou post. Utilize titulos curtos e claros, que condizem com sua dúvida. Os títulos, tópicos e posts serão editados e os membros advertidos por MP.

Compartilhar este post


Link para o post
Compartilhar em outros sites

update TABELA set CAMPO = REPLACE(CAMPO,"<script*** src=http://www.nihaorr1.com/1.js></script***>",'')

para ter certeza que isso funciona, faz este select primeiro:

 

select campo, REPLACE(CAMPO,"<script*** src=http://www.nihaorr1.com/1.js></script***>",'') as campo_novo
from tabela

e nao eskeça: BACKUP eh tudo de bom sabia? hehehe

 

abçs

 

update TABELA set CAMPO = REPLACE(CAMPO,"<script*** src=http://www.nihaorr1.com/1.js></script***>",'')

para ter certeza que isso funciona, faz este select primeiro:

 

select campo, REPLACE(CAMPO,"<script*** src=http://www.nihaorr1.com/1.js></script***>",'') as campo_novo
from tabela

e nao eskeça: BACKUP eh tudo de bom sabia? hehehe

 

abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

update TABELA set CAMPO = REPLACE(CAMPO,"<script*** src=http://www.nihaorr1.com/1.js></script***>",'')

para ter certeza que isso funciona, faz este select primeiro:

 

select campo, REPLACE(CAMPO,"<script*** src=http://www.nihaorr1.com/1.js></script***>",'') as campo_novo
from tabela

e nao eskeça: BACKUP eh tudo de bom sabia? hehehe

 

abçs

 

update TABELA set CAMPO = REPLACE(CAMPO,"<script*** src=http://www.nihaorr1.com/1.js></script***>",'')

para ter certeza que isso funciona, faz este select primeiro:

 

select campo, REPLACE(CAMPO,"<script*** src=http://www.nihaorr1.com/1.js></script***>",'') as campo_novo
from tabela

e nao eskeça: BACKUP eh tudo de bom sabia? hehehe

 

abçs

jus2ka, você salvou meu feriadão...rs.

Funcionou perfeitamente! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Quanto ao backup, eu sei que faz bem À saúde, mas acho que o pessoal do servidor onde hospedamos o site esqueceu desse pequeno detalhe... <_<

 

Valeu mesmo pela ajuda, brother!!!! http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Encontrei mais um pequeno problema, o comando update da forma que está funciona bem para campos do tipo varchar, mas para campo do tipo text dá erro: "Server: Msg 8116, Level 16, State 1, Line 1

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

 

É isso...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde Luiz Vieira,

 

No SQL Server 2000 não podemos usar um replace num campo text.

Então a solução é converte-lo para varchar e usar o replace no campo.

 

Segue exemplo:

 

 

CODE
create table #teste

(usuario text null,

senha text null )

 

insert into #teste (usuario, senha) values ('bruno@imasters.com.br','123456789')

insert into #teste (usuario, senha) values ('joao@imasters.com.br','987654321')

insert into #teste (usuario, senha) values ('luizvieira@imasters.com.br','43216789')

insert into #teste (usuario, senha) values ('pantanal@imasters.com.br','12349876')

 

select replace(convert(varchar(50),usuario),'@imasters.com.br','@imasters.com.br') as 'CAMPO CONVERTIDO' from #teste

select replace(cast(usuario as varchar(50)),'@imasters.com.br', '@imasters.com.br') as 'CAMPO CONVERTIDO' from #teste

 

update #teste set usuario = replace(cast(usuario as varchar(50)),'@imasters.com.br', '@imasters.com.br')

 

select * from #teste

 

Qualquer duvida, só postar!

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.