XML タイプ列で作成された Oracle ビューからデータを取得しようとしています。
例: 以下は XSD です。
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="MsrFact" type="MsrNode"/>
<xsd:complexType name="MsrNode">
<xsd:sequence>
<xsd:element name="shipTo" type="MsrValue"/>
<xsd:element name="billTo" type="MsrValue"/>
<xsd:element name="FormulaeItem" type="MsrValue" maxOccurs="10"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="MsrValue">
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="street" type="xsd:integer"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
挿入されたxmlは次のとおりです。
<MsrFact xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<MsrNode>
<shipTo>
<name>shipTo</name>
</shipTo>
<billTo>
<name>billTo</name>
</billTo>
<FormulaeItem>
<name>FormulaeItem1</name>
</FormulaeItem>
<FormulaeItem>
<name>FormulaeItem2</name>
<street>100</street>
</FormulaeItem>
<FormulaeItem>
<name>FormulaeItem3</name>
</FormulaeItem>
</MsrNode>
</MsrFact>
テーブル:
temptab(
ogrid number(10),
xdata xmltype);
見る:
CREATE OR REPLACE VIEW
MsrFactView(orgid,shipTo,shipToR, billTo,billToR, FormulaeItem,FormulaeItemR)
AS SELECT ogrid,
extractValue(xdata, '/MsrFact/shipTo/name'),
extractValue(xdata, '/MsrFact/shipTo/street'),
extractValue(xdata, '/MsrFact/billTo/name'),
extractValue(xdata, '/MsrFact/billTo/street'),
extractValue(xdata, '/MsrFact/FormulaeItem/name'),
extractValue(xdata, '/MsrFact/FormulaeItem/street')
FROM temptab;
エラー SQL エラーが発生するため、このビューに直接選択クエリを作成できません
: ORA-01427: 単一行のサブクエリが複数の行を返します 01427
.
このビューからデータを取得する方法はありますか? ありがとう !