Usar a substituição num comando de actualização DB2
eu tenho uma necessidade rápida em que eu preciso atualizar os dados no meu db que está corrompido. Eu tenho algumas colunas de texto onde o texto contém   e embora tenhamos Corrigido o problema em código eu ainda preciso corrigir os dados corrompidos em db.
Acho que consigo.UPDATE table_name
SET column_name=(
SELECT REPLACE(colum_name, ' ', '')
FROM table_name
WHERE id=1234)
WHERE id=1234
Mas terei de o fazer individualmente para cada fila. Existe alguma pesquisa mais fácil que irá verificar todas as linhas na coluna em particular e remover a marca  ?
Obrigado pela ajuda.
2
Author: a_horse_with_no_name, 2014-02-21
2 answers
Acho que outros peritos estão a complicar a solução que só requer uma solução simples.
UPDATE
:
UPDATE table_name SET column_name = REPLACE(column_name, ' ', '')
WHERE column_name LIKE '% %'
9
Author: mustaccio, 2014-02-24 16:14:24
Podes fazê-lo com um procedimento armazenado ou com um bloco anónimo
Devia ser algo assim.begin
declare atend boolean default false;
declare val char(32);
declare newstring char(32);
declare c cursor for
select col from table;
open c;
fetch c into val;
while (atend = false) do
set newstring = replace(val, ' ', '');
update table set col = newstring where current of c;
fetch c into val;
end while;
end@
1
Author: AngocA, 2014-02-21 11:40:28