Базы данных Oracle - статьи


Oraclexmlmess.shtml - часть 3


  • Определяет значения аргументов, переданных в функцию, на соответствующие места в XML дейтаграмме <moreovernews>.
  • Передает дейтаграмму новостей на URL Web сервиса, используя xml_http.post.
  • Проверяет содержание вернувшегося XML документа, используя xpath.test, чтобы проверить успешно ли завершился запрос на отправку (POST).
  • Мы можем быстро проверить функцию из SQL*Plus, создав переменную SQL*Plus с именем status, и запустив функцию вроде этой:

    SQL> variable status varchar2(10); SQL> exec :status := postNewsStory('Она работает!','Стив','http://someserver/somepage.html');

    PL/SQL procedure successfully completed.

    SQL> print status

    STATUS ------------ Success

    Печать значения переменной status показывает, что запрос был успешным.

    Далее, мы проверим пример получения (HTTP GET). Иногда Web сервисы просто принимают информацию о задаче, которую им необходимо выполнить, в качестве параметров URL. В этих случаях нет необходимости передавать какой-либо XML документ. Вместо этого мы только делаем HTTP GET на URL сервиса с соответствующим значением параметра, добавленным в конец URL.

    На Рисунке 2 показан обмен между нашей базой данных и Web сервисом, который позволяет нам искать название аэропорта, по трехбуквенному сокращению. База данных, запущенная на сайте, предлагающем услугу “Поиск аэропорта”, содержит трехбуквенные коды и описания более 10000 аэропортов мира. Мы можем искать наименование для некоего аэропорта с кодом XYZ, выполнив HTTP GET на URL:
    http://ws5.olab.com/xsql/demo/airport/airport.xsql?airport=XYZ.

    Для этого, создадим функцию airportDescription, которая делает следующее:

    1. Приклеивает значение аргумента, передаваемого функции, в конец Web сервиса URL.
    2. Получает дейтаграмму от Web сервиса, используя xml_http.get.
    3. Проверяет содержимое возвращаемого XML документа, используя xpath.test, чтобы увидеть успешно ли завершился запрос на передачу (POST).

    Код этой функции приведен в Листинге 6.

    Снова, мы можем быстро проверить нашу новую функцию airportDescription из SQL*Plus, как показано ниже, чтобы увидеть какой аэропорт соответствует абревиатуре XML:




    Начало  Назад  Вперед



    Книжный магазин