clobフィールドにXMLが格納されています。 xmlには繰り返しノードがあります。私の抽出は、繰り返しノードがないときに動作します(clobで1回の提出)。 EXTRACT Valueは1つのノードの値を返します。私のOracleのバージョンと、入力フィールドがOracleテーブルのCLOBタイプであるという事実を考慮した私のオプションは何ですか?私はXMLtableを試してみましたが、それを動作させることができず、私のデータがクローブに格納されていることを確認できません。Oracle 11.2.0.3 EXTRACT値が1つのノードの値を返します
マイテーブル:
CREATE TABLE "LEAD_REPORTING_CLOB"
("FILENAME" VARCHAR2(80),
"SHARED_XML" CLOB);
マイCLOB:
<?xml version="1.0"?>
<LeadReport xmlns="http://www.xxx.yyy/efile">
<Lead>
<AssociatedState>
<StateOrCityCode>AZST</StateOrCityCode>
</AssociatedState>
<AssociatedState>
<StateOrCityCode>MIST</StateOrCityCode>
</AssociatedState>
<PatternDescription>MI state</PatternDescription>
<SourceIPAddress>
<IPAddress>
<IPv4AddressTxt>98.999.99.115</IPv4AddressTxt>
</IPAddress>
<IPTs>2016-04-25T10:12:19-07:00</IPTs>
</SourceIPAddress>
<SourceIPAddress>
<IPAddress>
<IPv4AddressTxt>192.888.888.888</IPv4AddressTxt>
</IPAddress>
<IPTs>2016-04-25T10:32:10-07:00</IPTs>
</SourceIPAddress>
<AdditionalInformation>
<ReturnSubmStatus>U</ReturnSubmStatus>
<EmailAddressDomain>emailchair.33xxxx.com</EmailAddressDomain>
<PhoneNumberLastFour>5553</PhoneNumberLastFour>
</AdditionalInformation>
</Lead>
<Lead>
<AssociatedState>
<StateOrCityCode>AZST</StateOrCityCode>
</AssociatedState>
<AssociatedState>
<StateOrCityCode>MIST</StateOrCityCode>
</AssociatedState>
<PatternDescription>MI state2</PatternDescription>
<SourceIPAddress>
<IPAddress>
<IPv4AddressTxt>98.444.44.444</IPv4AddressTxt>
</IPAddress>
<IPTs>2016-04-25T10:03:43-07:00</IPTs>
</SourceIPAddress>
<SourceIPAddress>
<IPAddress>
<IPv4AddressTxt>192.333.33.333</IPv4AddressTxt>
</IPAddress>
<IPTs>2016-04-25T10:20:33-07:00</IPTs>
</SourceIPAddress>
<AdditionalInformation>
<ReturnSubmStatus>U</ReturnSubmStatus>
<EmailAddressDomain>emailchair.33xxxx.com</EmailAddressDomain>
<PhoneNumberLastFour>1744</PhoneNumberLastFour>
</AdditionalInformation>
</Lead>
<Lead>
<SubmissionId>9999988861170019999</SubmissionId>
<AssociatedState>
<StateOrCityCode>AZST</StateOrCityCode>
</AssociatedState>
<AssociatedState>
<StateOrCityCode>MIST</StateOrCityCode>
</AssociatedState>
<PatternDescription>MI/AZ</PatternDescription>
<SourceIPAddress>
<IPAddress>
<IPv4AddressTxt>98.222.22.222</IPv4AddressTxt>
</IPAddress>
<IPTs>2016-04-23T22:07:16-07:00</IPTs>
</SourceIPAddress>
<SourceIPAddress>
<IPAddress>
<IPv4AddressTxt>192.666.66.666</IPv4AddressTxt>
</IPAddress>
<IPTs>2016-04-25T21:59:21-07:00</IPTs>
</SourceIPAddress>
<SourceIPAddress>
<IPAddress>
<IPv4AddressTxt>198.111.111.111</IPv4AddressTxt>
</IPAddress>
<IPTs>2016-04-26T00:12:37-07:00</IPTs>
</SourceIPAddress>
<AdditionalInformation>
<ReturnSubmStatus>R</ReturnSubmStatus>
<EmailAddressDomain>emailchair.33xxxx.com</EmailAddressDomain>
<PhoneNumberLastFour>0503</PhoneNumberLastFour>
</AdditionalInformation>
</Lead>
</LeadReport>
マイセレクト:
select
nvl(EXTRACTVALUE(xmltype(ocr.shared_xml),
'//Lead/SubmissionId',
'xmlns="http://www.xxx.yyy/efile"'),
'') as "SubmissionId",
nvl(EXTRACTVALUE(xmltype(ocr.shared_xml),
'//Lead//StateSubmissionId',
'xmlns="http://www.xxx.yyy/efile"'),
'') as "state_submission_id",
nvl(EXTRACTVALUE(xmltype(ocr.shared_xml),
'//Lead//StateOrCityCode',
'xmlns="http://www.xxx.yyy/efile"'),
'') as "StateOrCityCode",
nvl(EXTRACTVALUE(xmltype(ocr.shared_xml),
'//Lead/PatternDescription',
'xmlns="http://www.xxx.yyy/efile"'),
'') as "PatternDescription",
nvl(EXTRACTVALUE(xmltype(ocr.shared_xml),
'//Lead//IPv4AddressTxt',
'xmlns="http://www.xxx.yyy/efile"'),
'') as "IPv4AddressTxt",
nvl(EXTRACTVALUE(xmltype(ocr.shared_xml),
'//Lead//TCPPortNumber',
'xmlns="http://www.xxx.yyy/efile"'),
'') as "TCPPortNumber",
nvl(EXTRACTVALUE(xmltype(ocr.shared_xml),
'//Lead//IPTs',
'xmlns="http://www.xxx.yyy/efile"'),
'') as "IPTs",
nvl(EXTRACTVALUE(xmltype(ocr.shared_xml),
'//Lead//DeviceId',
'xmlns="http://www.xxx.yyy/efile"'),
'') as "DeviceId",
nvl(EXTRACTVALUE(xmltype(ocr.shared_xml),
'//Lead//DeviceIdTs',
'xmlns="http://www.xxx.yyy/efile"'),
'') as "DeviceIdTs",
nvl(EXTRACTVALUE(xmltype(ocr.shared_xml),
'//Lead//ReturnSubmStatus',
'xmlns="http://www.xxx.yyy/efile"'),
'') as "ReturnSubmStatus",
nvl(EXTRACTVALUE(xmltype(ocr.shared_xml),
'//Lead//EFIN',
'xmlns="http://www.xxx.yyy/efile"'),
'') as "EFIN",
nvl(EXTRACTVALUE(xmltype(ocr.shared_xml),
'//Lead//PTIN',
'xmlns="http://www.xxx.yyy/efile"'),
'') as "PTIN",
nvl(EXTRACTVALUE(xmltype(ocr.shared_xml),
'//Lead//EmailAddressDomain',
'xmlns="http://www.xxx.yyy/efile"'),
'') as "EmailAddressDomain",
nvl(EXTRACTVALUE(xmltype(ocr.shared_xml),
'//Lead//PhoneNumberLastFour',
'xmlns="http://www.xxx.yyy/efile"'),
'') as "PhoneNumberLastFour"
FROM
lead_reporting_clob ocr;
それはそれを行います。ありがとう、アレックス! – Marianne
これで、すべてのデータをクローブにロードしましたので、問合せを試して、次のエラーが発生しました。ORA-19279:XPTY0004 - XQueryの動的型の不一致:予期されたシングルトンのシーケンス - 複数項目のシーケンスの取得 – Marianne
あなたが提供したサンプルデータ。拡張CLOBには、サブノードの1つの倍数を持つ先導ノードがありますか?もしそうなら、2番目のレベルのXMLTableを持つことができますが、例がなくても説明するのは難しいです。 [この例は役に立ちます](http://stackoverflow.com/a/29942692/266304)? –