Oracle XML DBにはまる

最近、仕事でOracle XML DBにはまってます(悪い意味で)。XML DBというのは、Oracle 9i Release2から追加された機能で、XMLTypeという型の列にXMLをそのまま格納することができます。XML内の要素もXPath式を使って直接検索できます。

XMLをそのまま丸ごとCLOB型の列に格納するだけなら簡単です(これを非構造化という)。XMLのパースはアプリケーション側で行えばいいです。けれども、一部の項目を書き換えたいだけなのにXML全体を取り出して更新する必要があります。

そこで構造化ストレージを利用すると、XMLの要素や属性ごとに別々の場所に格納することができます。各要素ごとにインデックスを作成できるので検索が高速になる、更新処理もXML全体を取り出すことなく変更部分だけを更新できるなどのメリットがあります。
この構造化ストレージを利用するには、XMLの定義をOracleに対して教えてあげなければなりません。この定義を記述するのがXML Schemaというものです。このXML SchemaをOracleに登録するところは何とかクリアしたのですが、実際にデータを登録するところでエラーになってしまいました。
Schema定義か登録しようとしてるXMLが悪いのだろうけど…



Leave a comment


:

:

:

:

このエントリーのはてなブックマーク (-)