Как я понимаю, вы вставляете только часть своего поля xml. Если это действительный xml, вы можете использовать выражение xpath по функции ExtractValue
Я приведу вам простой пример:
Определение данных
[ 110]
Запрос
select ExtractValue(title, '/a/b[1]') from Test;
Этот запрос возвращает первый элемент b внутри тега a (обратите внимание на « 1 в запросе). Результат в в данном случае это X
.
Так что в вашем случае вы можете использовать две функции ExtractValue в одном запросе, чтобы выбрать первый тег newValue и первый тег oldValue.
Это потому что, когда Вы звоните foo(@_)
, прототип для foo()
вызывает первый параметр (который является массивом), чтобы быть преобразованным в скаляр (который, число элементов в @_
).
См. ответы на мой предыдущий вопрос, спрашивающий, "Почему Прототипы функции Perl Плохо"?
FWIW, можно удержать прототипы на месте, если Вы изменяетесь bar
таким образом:
sub bar($;@) {
foo(shift, @_);
}
Вы неправильно понимаете прототипы Perl. Удалите их, и это будет хорошо работать.
избавьтесь от ($;@)
после того, как Ваши имена функций и это хорошо работают.