вторник, 15 сентября 2009 г.

XML in Oracle Database

Продолжаю изучать возможности вызова ВебСервисов из базы данных. В Предыдущем посте я добился этого с помощью UTL_HTTP. Вот только обработка ответа оставалась для меня достаточно туманной темой. Сегодня я проверил в действии возможности Oracle по обработке XML. Для этого существует специальный тип данных - xmltype.

Выглядит примерно так:


-- Декларация
DECLARE
resp XMLType;
...
-- Преобразуем СОАП - ответ в xml
resp := xmltype.createxml(response_env);

-- С помощью XPATH извлекаем нужную ноду
resp := resp.extract('/soapenv:Envelope/soapenv:Body/ns1:response/ns1:status/text()',
'xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/ xmlns:ns1="http://www.energia.ee/archibus/AfmRegisterMileage');

-- Если нода не найдена - то она нулл
if(resp IS NULL) then
DBMS_OUTPUT.put_line ('NOK');
else
DBMS_OUTPUT.put_line ('OK!!!');
-- Делаем с xml-ом что нам надо
DBMS_OUTPUT.put_line (resp.getStringVal());
end if;

Комментариев нет:

Отправить комментарий