
ODP.NETファーストステップ(4)
ODP.NETでOracle XML DBを活用する Page 1/4
日本オラクル
大田 浩
2005/2/26
Windowsプラットフォームにおけるアプリケーション開発は、.NETが主流となりつつある。本連載はVisual Basicから.NETへの移行を考えているOracleアプリケーション開発者に向けて、「Oracle Data Provider for .NET」を使うメリットや独自機能、新しいプログラミング・スタイルなどを解説する。(編集局)
今回はOracleデータベース上に実装されたネイティブXMLデータベース機能「Oracle XML DB」をOracle Data Provider for .NET(以下、ODP.NET)から使用する方法について説明します。
まず初めに、Oracle XML DBについて簡単に説明しましょう。Oracle XML DBとは、Oracleデータベース上に実装されたネイティブXMLデータベース機能で、以下のような特徴があります。
- XML標準仕様への準拠
- 高レベルなXML用のAPIを実装
- XMLTypeデータ型(XML文書格納用のデータ型)のサポート
- リポジトリ機能の実装:Oracle XML DB Repository
- XML Schemaに基づく構造化マッピング
Oracle XML DBは、XML文書を格納したり取り出すために、リレーショナル・データベースと同様にSQLを用いる方法と、ファイルシステムのような階層的なアクセス方法の2通りをサポートします。
![]() |
| 図1 Oracle XML DBへのアクセス方法 |
階層的なアクセス方法を可能にしたことで、Oracle XML DBへはFTP、HTTP、WebDAVなどの標準的なプロトコルを用いてもアクセスできます。また、XML文書へのアクセスのパフォーマンスを上げるために、これらのプロトコルのハンドリングはデータベース・サーバ内にネイティブに実装されています。今回はODP.NETから、XML文書を格納するためのデータ型であるXMLTypeデータ型(以下、XMLType)にアクセスする方法を説明します。
| Oracle XML DBの情報は、Oracle Technology Network(以下、OTN)のXML Technology Centerで詳細に説明してありますので、そちらを参照してください。 |
XMLTypeがサポートされたことで、次のようにXMLコンテンツに対してOracleデータベース上でXML文書の構造を意識した処理を簡単に実行できるようになりました。
- XPath式に準じたシンタックスを利用してXML文書の特定の部分にアクセス
- XML文書に対しての操作(検索、取り出し、変換や更新)を行うSQL関数やメンバ関数の利用
- Oracle Text索引やファンクション索引によって、高速にXML文書を検索
XMLTypeは以下の2つの種類に分類されます。
- 構造化ストレージ(構造化マッピング)
−XML文書を細分化し、データのみをオブジェクト型に格納
- 非構造化ストレージ(内部的にはCLOBに類似)
−XML文書全体を1つの文字列として格納
![]() |
| 図2 Oracle XML DBへのアクセス方法 |
では、実際にODP.NETを利用して、XMLTypeにアクセスする方法を説明します。
| 構造化ストレージ/非構造化ストレージのどちらを選択しても、ODP.NETからのコーディングは変わりません。格納方法の違いになります。XMLTypeに関する詳細な情報は、OTNのXML Technology Centerを参照してください。 |
■ODP.NETからOracle XML DBへアクセスするためのXML専用クラス
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へアクセスしてみましょう。(次ページへ続く)
| 1/4 |
| Index | |
| 連載:ODP.NETファーストステップ(4) ODP.NETでOracle XML DBを活用する |
|
| Page
1 ・Oracle XML DBとは ・XMLTypeについて ・ODP.NETからOracle XML DBへアクセスするためのXML専用クラス |
|
| Page 2 ・OracleCommandクラスを使用したOracle XML DBへのアクセス |
|
| Page
3 ・OracleXmlStreamクラスでのXML文書の取得 ・ExecuteXmlReaderを使用し、通常の表をXMLで取得 ・通常の表をOracleデータベース上でXML文書に変換し、取得する方法 |
|
| Page
4 ・OracleXmlSavePropertiesクラスを利用した通常の表へのアクセス ・連載の最後に |
|
| ODP.NETファーストステップ |
TechTargetジャパン
- IBMが歴史を変える!? 新カテゴリの製品を発表 (2012/5/25)
IBMは新たな製品カテゴリとなる「PureSystems」を発表。DB2 10とビッグデータの関係、PureSytemsの斬新さはどこかに迫ります - クラウド時代のデータ処理を支える分散KVSの可能性 (2012/5/23)
現在、高速データ処理の主流はインメモリ型データ処理だが、別の方法として分散KVSが注目を集めている。今回は分散KVSについて話を聞いた - 複数の表からデータを取り出して表示させる(2) (2012/4/23)
前回はSQLの基本的な結合構文について説明しました。今回は、より複雑な自己結合や外部結合について説明します - SQL Server、OOWにIQ、盛りだくさんの4月 (2012/4/20)
オラクルオープンワールドが3年ぶりに東京で開催されたほか、SQL Server 2012が提供開始されるなど、今月は話題が盛りだくさんです
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -


