Pessoal, estou com um pequeno problema:
Tenho um campo TEXT cujo conteúdo está em XML. Eu preciso eliminar as tags do XML e, como a quantidade tags(iguais) variam para cada registro, preciso saber a quantidade destas tags para removê-las e inserir o que sobrou em uma outra tabela.
Não posso realizar (devido à exigências) a tarefa buscando os registros por um programa em Java e limpar as tags.
Pensei em criar uma function que retorne a quantia de ocorrências de tal string em outra, mas está com erro de sintaxe:DELIMITER $$
CREATE
FUNCTION `tempdictionary`.`COUNT_SUBSTRING`(str TEXT, target VARCHAR) RETURNS INTEGER
BEGIN
DECLARE returnValue INTEGER DEFAULT 1;
WHILE (SUBSTRING_INDEX(str, target, returnValue) LIKE ('%' & target & '%')) DO
SET returnValue := returnValue + 1;
END WHILE;
RETURN (returnValue - 1);
END$$
DELIMITER ;
Error Code : 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') RETURNS INTEGER
BEGIN
DECLARE returnValue INTEGER default 1;
WHILE (SUBS' at line 2
Alguém sabe alguma outra solução? Ou qual o problema da função?