У меня есть очень большой xml-файл, который я сохранил в длинном текстовом поле с именем xml в таблице с именем import.
Затем я сохраняю сегодняшнюю xml-строку в пользовательской переменной с именем @xml, например так.
SELECT xml FROM imports WHERE DATE(updated_at) = DATE(NOW()) INTO @xml;
Я могу проверить пользовательскую переменную, и длина данных там, как и ожидалось.
SELECT LENGTH(@xml);
Проверка позиции моего целевого тега xml также работает, как и ожидалось.
SELECT LOCATE('sm:ProductCode>', @xml);
Однако, когда я пытаюсь использовать ExtractValue с запросом XPath, который содержит пространство имен, я получаю нулевое значение.Этот запрос XPath протестирован и отлично работает в моей программе изучения XPath.
SELECT ExtractValue(@xml, '//sm:ProductCode');