XMLDBがインストールされたOracle 11gデータベースを使用しています。XMLType 列を含む表があります。XML の構造は、テーブル内のすべての行で同じになります。テーブルには他のフィールドもあります。
ここで、すべての行から特定のノードの属性値の値のみを、他のリレーショナル フィールドを含む文字列として取得したいと考えています。取得されるテーブル列は、TemplateId、TemplateVid、TemplatepartId のようになります。
XML の構造は次のようになります。
<Template ID=1000 VID=1>
<TemplateParts>
<Template ID="4000" VID="1"/>
<Template ID="4001" VID="1"/>
</TemplateParts>
</Template>
したがって、テーブルには、TemplateId、Vid、および TemplateXML を含む Template のデータが含まれます。TemplateXML フィールドは XMLType フィールドです。ここで、すべての TemplateId、Vid およびその参照テンプレートの partId を XML テーブルとして取得したいと考えています。出力は次のようになります。
TemplateId - TemplateVid - TemplatePartId - TemplatepartVid
1000 1 4000 1
1000 1 4001 1
したがって、誰でも上記の要件を満たす正しい Xquery を考え出すことができます。