Windowsプラットフォームにおけるアプリケーション開発は、.NETが主流となりつつある。本連載はVisual Basicから.NETへの移行を考えているOracleアプリケーション開発者に向けて、「Oracle Data Provider for .NET」を使うメリットや独自機能、新しいプログラミング・スタイルなどを解説する。(編集局)
--Page 1--
▼Oracle XML DBとは
▼XMLTypeについて
▼ODP.NETからOracle XML DBへアクセスするためのXML専用クラス
--Page 2--
▼OracleCommandクラスを使用したOracle XML DBへのアクセス
--Page 3--
▼ExecuteXmlReaderを使用し、通常の表をXMLで取得
▼通常の表をOracleデータベース上でXML文書に変換し、取得する方法
--Page 4--
▼OracleXmlSavePropertiesクラスを利用した通常の表へのアクセス
今回はOracleデータベース上に実装されたネイティブXMLデータベース機能「Oracle XML DB」をOracle Data Provider for .NET(以下、ODP.NET)から使用する方法について説明します。
まず初めに、Oracle XML DBについて簡単に説明しましょう。Oracle XML DBとは、Oracleデータベース上に実装されたネイティブXMLデータベース機能で、以下のような特徴があります。
Oracle XML DBは、XML文書を格納したり取り出すために、リレーショナル・データベースと同様にSQLを用いる方法と、ファイルシステムのような階層的なアクセス方法の2通りをサポートします。
階層的なアクセス方法を可能にしたことで、Oracle XML DBへはFTP、HTTP、WebDAVなどの標準的なプロトコルを用いてもアクセスできます。また、XML文書へのアクセスのパフォーマンスを上げるために、これらのプロトコルのハンドリングはデータベース・サーバ内にネイティブに実装されています。今回はODP.NETから、XML文書を格納するためのデータ型であるXMLTypeデータ型(以下、XMLType)にアクセスする方法を説明します。
XMLTypeがサポートされたことで、次のようにXMLコンテンツに対してOracleデータベース上でXML文書の構造を意識した処理を簡単に実行できるようになりました。
XMLTypeは以下の2つの種類に分類されます。
では、実際にODP.NETを利用して、XMLTypeにアクセスする方法を説明します。
ODP.NETではOracle XML DBへアクセスするために、以下のXML専用クラスが用意されています。
クラス名 | 概要 |
---|---|
OracleCommand | XmlCommandTypeプロパティやExecuteXmlReaderメソッド、ExecuteNonQueryメソッドなどを使用して、XML文書を取得 |
OracleXmlType | OracleXmlTypeクラスを使用して、Oracle固有のXMLTypeデータを取得 |
OracleXmlStream | OracleXmlStreamクラスを使用して、読み取り専用の.NET StreamオブジェクトとしてOracleXmlTypeオブジェクトからXML文書を取得 |
OracleXmlQueryProperties | XmlCommandTypeプロパティがQueryのときにOracleCommandクラスによって使用されるXMLプロパティを表す |
OracleXmlSaveProperties | XmlCommandTypeプロパティがInsert、Update、DeleteのときにOracleCommandクラスによって使用されるXMLプロパティを表す |
表1 ODP.NETで提供されるXML専用クラス |
それでは実際に上記のクラスを利用してOracle XML DBへアクセスしてみましょう。(次ページへ続く)
Copyright © ITmedia, Inc. All Rights Reserved.