Sql xml что это за программа

Какие именно данные приложения следует хранить в базе данных

В SQL Server 2005 появляется полнофункциональный тип данных XML. Благодаря этому типу данных становится возможным использовать свойственные XML SQL-запросы для поиска XML-данных и доступа к ним. Этот тип данных доступен и для таблиц, и для переменных. Если вы храните данные с использованием типа данных XML, то для запроса к ним можно использовать реализацию языка запросов XQuery в SQL Server.

До появления типа данных XML при необходимости выполнить запрос к этим данным проектировщикам приходилось сначала извлекать их в реляционную версию. Необходимость извлечения XML-данных в таблицы и столбцы (эта методика получила название разбивки данных) с целью получения возможности запрашивать эти данные ограничивала гибкость, присущую XML-документам. Теперь, благодаря возможности использовать тип данных XML, разработчики могут ссылаться на содержимое документа, не прибегая к его разбивке на строки и столбцы. В табл. 1.3 перечислены поддерживаемые в SQL Server 2005 методы манипуляций с типом данных XML.

T-SQL 2012: XML

Таблица 1.3. Методы языка XQuery, поддерживаемые в SQL Server 2005 Метод Синтаксис Назначение
query() .query(выражение XQuery) Выполняет выборку данных в XML-документе или фрагменте аналогично оператору SELECT .
value() .value (выражение XQuery, тип данных SQL) Объединяет функциональность метода query() с функцией CONVERT языка SQL. Это позволяет выполнить выборку значения из XML-документа или фрагмента и конвертировать результат в определенный тип данных.
exist() .exist (выражение XQuery) Возвращает значение TRUE , если искомое выражение обнаружено в XML-документе; метод аналогичен оператору EXISTS в T-SQL.
modify() .modify (выражение XML-DML) Позволяет добавлять, обновлять или удалять узлы в документе XML. Метод modify() следует использовать в предложении оператора UPDATE T-SQL
nodes() .nodes(выражение XQuery) as ИмяТаблицы(ИмяПоля) (См. информацию о XML-DML на справочном ресурсе SQL Server Books Online.) Позволяет выполнить разбивку документа и разместить результаты в реляционном формате

В следующем примере демонстрируется, как можно выполнить запрос к XML-данным в переменных XML.

Применяем метод Query() языка XQuery

  1. В меню Start (Пуск) выберите All Programs, Microsoft SQL Server 2005, SQL Server Management Studio (Все программы, Microsoft SQL Server 2005, Среда SQL Server Management Studio).
  2. В окне Microsoft SQL Server Management Studio создайте новый запрос, нажав кнопку New Query (Создать запрос). (Готовый запрос можно найти в файлах примеров под именем XQueryQueryMethod.sql ).
  3. Объявите переменную с типом данных XML, введя в панель запросов следующий код:

Это первая строка Это вторая строка

Даже этот простой пример может дать некоторое представление о том, что можно сделать с помощью новых функций XQuery в SQL Server. Можно использовать метод data() , чтобы возвратить данные из элемента без тэгов XML, или метод exist() , чтобы проверить, существует ли определенный узел.

XML, XQuery и трюки с производительностью

Следующий код (который можно найти в файлах примеров под именем XQueryQueryDataMethod.sql ) демонстрирует пример использования метода data() для возвращения определенного фрагмента XML-данных, не заключенных в тэги XML:

Должен получиться результат «Это вторая строка» .

Следующий код (его можно найти в файлах примеров под именем XQueryQueryExistMethod.sql ) демонстрирует пример использования метода exist() для того, чтобы определить, представлен ли в узле определенный фрагмент XML-данных:

Результирующий набор будет содержать значение 1.

Одно из преимуществ использования переменных XML заключается в том, что можно классифицировать столбец с другим типом данных, например, TEXT или VARCHAR , как XML, а затем применить методы XQuery к данным в этом столбце. Если вы используете XML в уже имеющейся среде SQL Server 2000, то, всего вероятнее, данные хранятся в полях TEXT или VARCHAR . В среде SQL Server Management Studio можно просмотреть данные в XML-формате. Это было невозможно в модуле Query Analyzer, который возвращал данные в виде нескольких строк. Следующий пример кода показывает, как классифицировать текстовые данные как XML.

SELECT CAST(textdata AS XML) FROM dbo.SomeTable WHERE SomeColumnID = 1

На рис. 1.1 показаны результаты запроса, который возвращает XML-данные, отображаемые в виде строки, в SQL Server Management Studio.


Рис. 1.1. Результаты запроса XQuery, отображаемые в SQL Server Management Studiio в виде строки

Если щелкнуть ссылку в панели результатов, как показано на рис. 1.1, то вы увидите результат, отображенный в виде XML, как показано на рис. 1.2.

увеличить изображение
Рис. 1.2. Так выглядит результат запроса, отображаемый в SQL Server Management Studio в виде XML после перехода по ссылке в панели результатов

Типизированный или нетипизированный XML?

SQL Server 2005 поддерживает использование XML-схем с типом данных XML. На рис. 1.3 показано размещение коллекции схем в SQL Server Management Studio. Если вы используете схемы, или коллекции схем, как они называются в SQL Server, то SQL Server применяет схему к XML-данным, хранимым в таблице.

При применении схемы принудительно применяются типы данных и ограничения посредством выполнения синтаксического анализа на основе схемы, которая загружается в столбец с типом данных XML. Можно гарантировать форматирование XML-данных, используя типизированные столбцы XML.


Рис. 1.3. Размещение коллекции схем в SQL Server Management Studio

Если вы храните XML-данные как нетипизированные, то есть, не применяя схему непосредственно к данным, тип данных все равно будет XML, и с этими данными можно использовать функции XML. В любом случае, целый ряд операторов и функций T-SQL доступен как для типизированных, так и для нетипизированных столбцов.

Вероятно, вы уже оценили преимущества использования типа данных XML. В новых приложениях, которые требуют использования XML, вам, безусловно, придется использовать тип данных XML. Однако если вы обновляете механизм базы данных для уже имеющейся системы, решение может оказаться непростым. Например, если существующая программа работает с XML-данными, размещенными в столбцах TEXT или NTEXT , возможно, в ваших же интересах будет оставить все как есть. Если только переключение на тип данных XML не обеспечивает безусловно необходимой вам функциональности, лучше используйте тип данных XML для новых разработок или при будущей модернизации отдельного приложения.

Читайте также:
Что за программа blitz

Предупреждение. При обновлении ядра базы данных лучше всего выполнять это обновление изолированно, не выполняя одновременно крупных обновлений приложения. Хотя тип данных XML — это замечательная новая возможность, объем ресурсов на разработку и тестирование, который требуется для реализации значительных изменений приложения, может помешать бесперебойной модернизации ядра базы данных, если вы попытаетесь модернизировать их одновременно.

Источник: intuit.ru

Transact-SQL — функции для работы с XML

Сегодня мы начнем рассматривать достаточно полезную возможность SQL сервера от компании Microsoft – это возможность хранить и обрабатывать данные в формате XML. В данном материале мы рассмотрим основные функции Transact-SQL для обработки данного типа данных.

XML очень популярный тип данных, так как данными такого типа достаточно легко обмениваться со множеством различных приложений, поэтому начинающий программист T-SQL должен иметь представление о том, как хранить эти данные и как их обрабатывать на SQL.

Например, в прошлой статье про журналирование изменений данных таблицы мы хранили старые и новые записи в простом текстовом формате, хотя могли использовать для этого XML.

Итак, приступим, для того чтобы хранить в таблице XML-данные, необходимо выбрать соответствующий тип, он так и называется xml. Запросы будем выполнять в среде Management Studio.

Примечание! Все примеры выполнены в Microsoft SQL Server 2008.

CREATE TABLE [table_test]( [id] [bigint] NOT NULL, [xmldate] [xml] NULL ) ON [PRIMARY] GO

Скриншот 1

Как видите все просто, мы создали таблицу, в которой два столба:

  • Id- идентификатор записи;
  • Xmldate – соответственно, какие-то XML данные.

Теперь давайте запишем туда что-нибудь, для этого выполним простой запрос INSERT.

INSERT INTO table_test (id,xmldate) VALUES(1,’ Иван Иванов ‘)

Здесь мы просто вручную разметили xml документ и записали его в нашу таблицу. Для того чтобы просто увидеть данные в этой таблице, xml отображается в читабельном виде, выполните запрос используя оператор select:

SELECT xmldate FROM table_test

Вы получите данные вида

Скриншот 2

Функции T-SQL для работы с XML данными

Данные функции называют методами, и начнем мы с метода query.

query – делает выборку в самом xml документе, который хранится в нашей таблице, и принимает он один параметр — это строка запроса к xml документу, т.е. что именно Вы хотите получить из xml. Возвращает также данные типа xml. Например, выше мы создали таблицу, в которой корневой тег catalog, а нам, допустим, нужно получить только тег name, для этого выполните следующий запрос.

SELECT xmldate.query(‘/catalog/name’) FROM table_test

и в ответ Вы получите данные вида.

Скриншот 3

Надеюсь, смысл этого метода понятен.

Курс по SQL для начинающих

Далее рассмотрим функцию modify.

modify – как понятно из названия она изменяет данные xml. Принимает один параметр — это собственно сами инструкции по изменению xml документа. Используется в конструкции update.

Для удаления узла используйте запрос.

UPDATE table_test SET xmldate.modify(‘delete /catalog/lastname’)

Здесь мы удалили узел lastname, для проверки используйте запрос select к данной таблице.

Для вставки узла используйте запрос.

UPDATE table_test SET xmldate.modify(‘insert Иванов as last into (/catalog)[1] ‘)

Здесь мы добавили узел lastname обратно в каталог. Для проверки используйте тот же самый запрос select.

Для обновления значения в узле используйте следующий запрос.

UPDATE table_test SET xmldate.modify(‘replace value of(/catalog/name[1]/text())[1] with «Сергей» ‘)

Здесь в первом узле name (ну он у нас один) мы изменили значение «Иван» на «Сергей».

Переходим к методу value.

value – возвращает значения узла. Очень удобно использовать, когда Вы хотите запросом получить не xml документ, а его значения. Принимает два параметра, первый — это откуда брать значение, а второй — какой тип данных Вы при этом хотите получить.

SELECT xmldate.value(‘/catalog[1]/name[1]’,’char(50)’) FROM table_test

Иногда требуется запросом из таблицы не с xml данными получить данные xml, это тоже можно сделать, например, в следующем запросе мы записываем в переменную типа XML строку таблицы table с идентификатором 2, а затем просто получаем эти значения.

И еще один пример для наглядности (картинка ниже), он похож на предыдущий, но в нем мы просто подставляем статические данные.

Скриншот 4

У меня на этом все. Удачи!

Заметка! Для комплексного изучения языка SQL и T-SQL рекомендую посмотреть мои видеокурсы по T-SQL, которые помогут Вам «с нуля» научиться работать с SQL и программировать на T-SQL в Microsoft SQL Server.

Источник: info-comp.ru

Использование XML-данных в приложениях

В этой статье описываются параметры, доступные для работы с типом данных xml в приложении. В этой статье содержатся следующие сведения:

  • Обработка XML из столбца типа xml с помощью ADO и SQL Server Native Client
  • Обработка XML в столбцах типа xml с помощью ADO.NET
  • Обработка типа xml в параметрах с помощью ADO.NET

Обработка XML из столбца типа xml с помощью ADO и SQL Server Native Client

Чтобы использовать компоненты MDAC для доступа к типам и функциям, представленным в SQL Server 2005 (9.x), необходимо задать свойство инициализации DataTypeCompatibility в строке подключения ADO.

Например, в следующем образце скрипта Visual Basic Scripting Edition (VBScript) выдается результат запроса столбца , содержащего данные типа xml Demographics , из таблицы Sales.Store образца базы данных AdventureWorks2012 . В частности, запрос производит поиск значения столбца для строки, в которой значение CustomerID равно 3 .

Const DS = «MyServer» Const DB = «AdventureWorks2012» Set objConn = CreateObject(«ADODB.Connection») Set objRs = CreateObject(«ADODB.Recordset») CommandText = «SELECT Demographics» FROM Sales.Store» INNER JOIN Sales.Customer» ON Sales.Store.BusinessEntityID = sales.customer.StoreID» WHERE Sales.Customer.CustomerID = 3″ OR Sales.Customer.CustomerID = 4″ ConnectionString = «Provider=MSOLEDBSQL» ;Data Source=» _ «;Initial Catalog=» _ «;Integrated Security=SSPI;» DataTypeCompatibility=80″ ‘Connect to the data source. objConn.Open ConnectionString ‘Execute command through the connection and display Set objRs = objConn.Execute(CommandText) Dim rowcount rowcount = 0 Do While Not objRs.EOF rowcount = rowcount + 1 MsgBox «Row » _ vbCrLf objRs(0) objRs.MoveNext Loop ‘Clean up. objRs.Close objConn.Close Set objRs = Nothing Set objConn = Nothing

В этом примере показано, как настроить свойство совместимости типов данных. По умолчанию для этого параметра задано значение 0 при использовании SQL Server Native Client. Если задать значение 80, поставщик SQL Server Native Client сделает столбцы xml и определяемых пользователем типов как SQL Server 2000 (8.x). то есть DBTYPE_WSTR и DBTYPE_BYTES соответственно.

SQL Server Native Client (часто сокращенный SNAC) был удален из SQL Server 2022 (16.x) и SQL Server Management Studio 19 (SSMS). Для новой разработки не рекомендуется использовать SQL Server Native Client (SQLNCLI или SQLNCLI11) и устаревший поставщик МАЙКРОСОФТ OLE DB для SQL Server (SQLOLEDB). В дальнейшем перейдите на новый драйвер МАЙКРОСОФТ OLE DB (MSOLEDBSQL) для SQL Server или последнюю версию драйвера ODBC Майкрософт для SQL Server.

Читайте также:
Программа вивитрол что это

Протестируйте этот пример

  1. Убедитесь, что SQL Server Native Client установлен и что на клиентском компьютере доступно MDAC 2.6.0 или более поздних версий. Дополнительные сведения см. в статье Программирование SQL Server Native Client.
  2. Убедитесь, что AdventureWorks2019 образец базы данных в SQL Server установлен. Для этого примера требуется образец базы данных AdventureWorks2019 .
  3. Скопируйте код, показанный ранее в этой статье, и вставьте его в текст или редактор кода. Сохраните файл под именем HandlingXmlDataType.vbs.
  4. Измените скрипт в соответствии с требованиями для установки SQL Server и сохраните изменения. Например, если MyServer указано значение , следует заменить его на или (local) на фактическое имя сервера, на котором установлен SQL Server.
  5. Запустите файл скрипта HandlingXmlDataType.vbs на выполнение.

Результат должен примерно соответствовать следующему:

Row 1 1500000 150000 Primary International OS 1974 Road 38000 3 DSL 40 Row 2 300000 30000 United Security BM 1976 Road 6000 2 DSL 5

Обработка XML из столбца типа XML с помощью ADO.NET

Для обработки XML из столбца типа данных xml с помощью ADO.NET и Майкрософт платформа .NET Framework можно использовать стандартное поведение класса SqlCommand. Например, столбец типа данных xml и его значения можно получить так же, как любой столбец SQL с помощью SqlDataReader. Однако если вы хотите работать с содержимым столбца типа данных xml в виде XML, сначала необходимо назначить содержимое типу XmlReader .

Дополнительные сведения и пример кода см. в разделе Значения XML-столбцов в средстве чтения данных документации по пакету SDK для Майкрософт платформа .NET Framework 2.0.

Обработка столбца типа xml в параметрах с помощью ADO.NET

Для обработки типа данных xml, переданного в качестве параметра в ADO.NET и платформа .NET Framework, можно указать значение в качестве экземпляра типа данных SqlXml. Специальная обработка не требуется, так как столбцы типа данных xml в SQL Server могут принимать значения параметров так же, как и другие столбцы и типы данных, например строковые или целые числа.

Дополнительные сведения и пример кода см. в разделе XML-значения как параметры команд в документации по пакету SDK для Майкрософт платформа .NET Framework 2.0.

См. также раздел

Источник: learn.microsoft.com

Работа с xml в ms sql Server 2005, 2008

Цель работы: познакомиться с понятиями XML – модель данных, XSD – схемами, познакомиться со способами создания типизированного и нетипизированного XML, а также способами преобразования реляционной модели в XML.

Для лабораторной работы использована частично теория спецкурса “Реализация баз данных Microsoft SQL Server 2008”, существенно дополненного примерами работы и дополнительными сведениями, позволяющими работать с материалом начинающим.

Подготовка к работе:

Для выполнения некоторых примеров необходимо установить учебную базу данных: для версии 2005 — AdventureWorksLT.msi (папка «пример БД для MS SQL Server 2005»), для версии 2008 — AdventureWorksLT2008_Data.mdf и AdventureWorksLT2008_Log.ldf (папка «пример БД для MS SQL Server 2008»).

Порядок установки для версии 2005:

Запустить файл AdventureWorksLT.msi на установку и следовать инструкции. В результате в домашней папке, хранящей базы данных, например: C:Program Files (x86)Microsoft SQL ServerMSSQL.1MSSQLData, будет сформировано два файла: AdventureWorksLT_Data.mdf и AdventureWorksLT_Log.ldf.

Далее для работы запустить программу SQL Server Management Studio и присоединить базу данных, как показано в лабораторной работе №1 (на компоненте (Databases) нажать правой кнопкой мыши, далее выбрать (Attach…), в появившемся окне добавить путь к файлам присоединяемой базы данных и выполнить присоединение).

Порядок установки для версии 2008:

Файлы AdventureWorksLT2008_Data.mdf и AdventureWorksLT2008_Log.ldf поместить в папку с другими файлами баз данных, например: C:Program Files (x86)Microsoft SQL ServerMSSQL.1MSSQLData.

Далее для работы запустить программу SQL Server Management Studio и присоединить базу данных, как показано в лабораторной работе №1 (на компоненте (Databases) нажать правой кнопкой мыши, далее выбрать (Attach…), в появившемся окне добавить путь к файлам присоединяемой базы данных и выполнить присоединение).

Ознакомьтесь с содержимым таблиц базы данных – она описывает покупки, заказы, покупателей и прочее.

При выполнении работы необходимо исполнять все встречающиеся примеры и в отдельный файл копировать код примера и результат выполнения. Проанализировать выполненные примеры.

Для выполнения примеров в SQL Server Management Studio нажать (New Query) в левом верхнем углу программы. Для запуска кода нажмите F5.

Использование типа данных xml Тип данных xml

Тип данных XML является встроенным типом данных SQL Server.

Он может применяться для определения столбцов таблиц, переменных, параметров или значений функций.

Тип данных XML позволяет сохранять xml–документы и фрагменты в базе данных SQL Server.

При необходимости можно назначить коллекцию xml–схем для столбца, параметра или переменной типа XML.

Схемы коллекции применяются для проверки XML–данных. В этом случае используют понятие типизированный XML.

1. Пример создания схем для XML:

Для выполнения примера в SQL Server Management Studio нажать (New Query) в левом верхнем углу программы. Для запуска кода нажмите F5.

Use — сделать базу данных текущей

CREATE XML SCHEMA COLLECTION [dbo].[MySampleCollection]

Увидеть результат выполнения можно в разделе базы данных AdventureWorksLT, далее (Programmability) , далее (Types), далее (XML Schema Collection)

2. Пример: Cоздание типизированной переменной xml путем указания коллекции XML-схем:

3. Пример: Cоздание типизированного поля xml в структуре таблицы:

CREATE TABLE Table1( [Col1] [xml] (CONTENT [dbo].[MySampleCollection]) NULL)

Увидеть результат выполнения можно в разделе базы данных AdventureWorksLT, далее (Tables)

Источник: studfile.net

Oracle XML DB — работаем с неструктурированными данными

Обзор возможностей базы данных Oracle XML DB

В любой типичной организации информация хранится в нескольких форматах, часть которой, возможно, помещается в реляционные базы данных, но большая часть все-таки хранится за пределами этих баз данных. Не помещаемая в базы данных информация может храниться в формате конкретных приложений, например, электронных таблиц Excel. Сохранение ее вместо этого в формате XML позволяет упрощать процесс получения доступа и обновления неструктурированных данных организации.

Oracle XML DB (XML-база данных Oracle) не является базой данных специально предназначенного для XML-данных типа. Она просто дополнительно содержит набор встроенных технологий для хранения, извлечения и манипулирования XML-данными. Она обладает преимуществами одновременно и технологии реляционных баз данных, и технологии XML.

Например, одна из главных проблем при работе с XML-данными в реляционной базе данных состоит в том, что большинство XML-данных имеют иерархическую структуру по своей природе, в то время как база данных Oracle основана на реляционной модели. Через Oracle XML DB предоставляется возможность эффективной обработки иерархических XML-данных за счет применения специальных SQL-операторов и методов, которые позволяют запрашивать и обновлять XML-данные в базе Oracle. Посредством Oracle XML DB в ядро Oracle встраивается объектная модель документов XML ( Document Object Model — DOM). Благодаря этому, большинство операций с данными XML воспринимается как часть обычного процесса обработки данных.

Читайте также:
Что за программа savefrom net helper

Oracle XML DB предоставляет возможность просматривать как структурированную, так и неструктурированную информацию в формате реляционных данных. То есть данные можно просматривать как в виде строк в таблице, так и в виде узлов в XML-документе.

Ниже приведен краткий перечень предлагаемых XML-базой данных Oracle преимуществ:

  • К XML-данным можно получать доступ с помощью обычных SQL-запросов.
  • Для обработки XML-данных можно использовать поддерживаемые Oracle технологии оперативной обработки транзакций (OLTP), создания хранилищ данных, тестирования, пространственных данных и мультимедиа.
  • Можно генерировать XML из SQL-запросов Oracle.
  • Можно легко преобразовывать XML в формат HTML.

Сохранение XML-данных в Oracle XML DB

Для сохранения и управления XML-данными в реляционной таблице применяется специальный тип данных XMLType. Этот тип, а также тип XDBURIType, который представляет собой еще один встроенный тип, предназначенный для работы с данными XML, позволяет возлагать ответственность за выполнение синтаксического анализа, хранение и извлечение XML-данных на базу данных Oracle. Использовать тип XMLType можно точно так же, как и обычные типы данных в базе данных Oracle. Благодаря ему, правильно оформленный XML-документ теперь можно сохранять в базе данных в виде XML-теста с использованием базового типа данных CLOB.

Ниже приведен пример применения типа данных XMLType:

SQL> CREATE TABLE sales_catalog_table 2 (sales_num number(18), 3 sales_order xmltype); Table created. SQL> DESC sales_catalog_table Name Null? Type —————— —— ——— SALES_NUM NUMBER(18) SALES_ORDER XMLTYPE SQL>

Тип данных XMLType поставляется с набором специальных XML-методов, которые можно использовать для работы с объектами XMLType.

Эти методы можно применять для выполнения как типичных операций в базе данных, наподобие проверки на предмет существования узла или извлечения узла, так и нескольких специальных операций, позволяющих получать доступ к XML-данными и манипулировать ими в виде части обычного SQL-оператора. Эти специальные операции являются отражением развивающегося стандарта SQL/XML. За счет использования уже хорошо известной нотации XPath, они осуществляют обход по структурам XML и отыскивают тот узел или узлы, к которым им следует применить указанные SQL-операторы. Ниже перечислены некоторые наиболее важные операции SQL/XML.

  • Extract(). Извлекает подмножество узлов, содержащихся в XMLType.
  • ExistsNode(). Проверяет, существует ли конкретный узел в XMLType.
  • Validating(). Проверяет правильность содержимого XMLType по схеме XML.
  • Transform(). Выполняет XSL-преобразование.
  • ExtractValue(). Возвращает узел, соответствующий выражению XPath.

XML-данные имеют абстрактную форму по сравнению с записями в обычных реляционных таблицах. Для оптимизации и выполнения операторов, подразумевающих обработку XML-данных, в Oracle применяется механизм перезаписи запросов, преобразующий выражение XPath в обычный эквивалентный оператор SQL. После этого оптимизатор обрабатывает этот преобразованный SQL-оператор подобно любому другому оператору SQL.

Сохранять XML-данные в XML-базе данных Oracle можно двумя способами.

  • С использованием SQL или PL/SQL для вставки данных. Такой подход подразумевает сначала преобразование исходных данных в экземпляр XMLType с помощью конструкторов XMLType.
  • С использованием репозитория Oracle XML DB для сохранения XML-данных.

Ниже приведен простой пример, в котором для демонстрации выполнения основанной на SQL операции DML в отношении поддерживающей XML таблицы используется таблица sales_catalog_table. В листинге 2 в эту таблицу вставляется XML-документ.

SQL> INSERT INTO sales_catalog_table 2 VALUES (123456, 3 XMLTYPE( 4 ‘ 5 Alapati — 200302201428CDT 6 7 8 Nina U. Alapati 9 ALAPATI 10 Dallas 11 12 Bicycle Courier 13 14 15 Expert Oracle DB Administration 16 17 18 19* ‘)); 1 row created. SQL>

Теперь для просмотра XML-документа в его исходном формате достаточно просто запросить столбец sales_order таблицы sales_catalog_table, как показано в листинге 3.

Работа с неструктурированными данными в Oracle XML DB

SQL> SELECT sales_order FROM 2 sales_catalog_table; Alapati — 200302201428CDT Sam R. Alapati ALAPATI Dallas Bicycle Courier Expert Oracle DB Administration SQL>

После создания из таблицы sales_catalog_table можно очень легко извлекать данные с помощью любого из описанных выше методов. Ниже показан пример применения метода extract(). В этом примере выражения XPath и операции SQL/XML extractValue и existsNode применяются для поиска названия того отправления, у которого в узле SalesOrder/SalesLocation/text() содержится значение Dallas.

SQL> SELECT extractValue(s.sales_order,’/SalesOrder/Requestor’) 2 FROM sales_catalog_table s 3 WHERE existsNode(s.SALES_ORDER, 4* ‘/SalesOrder[SalesLocation=»Dallas»]’) = 1; EXTRACTVALUE(S.SALES_ORDER,’/SALESORDER/REQUESTOR’) ————————————————— Nina U. Alapati SQL>

Репозиторий Oracle XML DB

Обрабатывать XML-документы в Oracle XML DB лучше всего, сначала загрузив их в специальное хранилище, называемое репозиторием Oracle XML DB.

Этот репозиторий имеет иерархическую структуру, как и большинство XML-данных, и позволяет легко запрашивать XML-данные. Для представления отношений между XML-данными в нем используются пути и URL-адреса, а для прохода по содержащимся внутри него папкам и путей — специальный иерархический индекс. В нем могут храниться и данные, отличные от XML, наподобие изображений JPEG, документов Word и многое другое.

Для получения доступа к этому репозиторию можно применять SQL и PL/SQL. Инструменты авторизации XML позволяют получать доступ к находящимся внутри него документам напрямую за счет использования популярных Интернет-протоколов вроде HTTP, FTP и WebDAV. Например, для работы с хранящимися в этом репозитории XML-документами можно легко применять такие приложения, как Windows Explorer, Microsoft Office и Adobe Acrobat. XML-данные являются документными по своей природе, а репозиторий XML обеспечивает приложения возможностью абстрагировать файлы при работе с ними.

Настройка схемы XML

Прежде чем приступить к использованию Oracle XML DB для работы с XML-документами, понадобится выполнить следующие задачи.

  1. Создайте схему XML. Например, в листинге 2 SalesOrder представляет собой простую XML-схему, отображающую простой XML-документ. Внутри нее находятся элементы, такие как ItemDescription, которые предоставляют детали по различным атрибутам элементов компонента.
  2. Зарегистрируйте схему XML. После создания схемы XML ее нужно обязательно зарегистрировать в базе данных Oracle с помощью соответствующей процедуры PL/SQL. При регистрации XML-схемы Oracle будет автоматически создавать все SQL-объекты и таблицы XMLType, необходимые для хранения и управления соответствующими XML-документами. В случае примера из листинга 1 регистрация схемы XML приведет к автоматическому созданию таблицы по имени SalesOrder со строками для каждого загруженного в репозиторий XML документа SalesOrder. Эта схема будет зарегистрирована под URL-адресом localhost:8080/home/SCOTT/xdb/salesorder.xsd и будет содержать определение элемента SalesOrder.

Создание реляционного представления из XML-документа

Даже если разработчик плохо разбирается в XML, он все равно может использовать XML-документы, хранящиеся в базе данных Oracle, за счет создания на их основе реляционных представлений. Ниже приведен пример отображения узлов в XML-документе на столбцы в реляционном представлении по имени salesorder_view:

SQL> CREATE OR REPLACE VIEW salesorder_view 2 (requestor,description,sales_location) 3 AS SELECT 4 extractValue(s.sales_order,’/SalesOrder/Requestor’), 5 extractValue(s.sales_order,’/SalesOrder/Sales_Location’) 6* FROM sales_Catalog_Table s ; View created. SQL>

Далее к этому представлению salesorder_view можно выполнять запросы точно так же, как и к любому другому представлению в базе данных Oracle, как показано ниже:

SQL> SELECT requestor,sales_location FROM salesorder_view; REQUESTOR SALES_LOCATION Aparna Alapati Dallas SQL>

Источник: oracle-patches.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru