Asp.net 如何将xml字符串插入存储过程中的Oracle数据库?
我的XML数据是:Asp.net 如何将xml字符串插入存储过程中的Oracle数据库?,asp.net,xml,oracle,oracle11g,oracle10g,Asp.net,Xml,Oracle,Oracle11g,Oracle10g,我的XML数据是: <NewDataSet> <AotReversefeedback> <Refid>N161144</Refid> <DPID /> <TrdAccOpenId>92021144 </TrdAccOpenId> <TrdAccOpenDate>May 7 2018 12:
<NewDataSet>
<AotReversefeedback>
<Refid>N161144</Refid>
<DPID />
<TrdAccOpenId>92021144 </TrdAccOpenId>
<TrdAccOpenDate>May 7 2018 12:00AM </TrdAccOpenDate>
<EntryDate>25/03/2018</EntryDate>
<ITicketStatus>POA</ITicketStatus>
<LastupdatedDate>07/05/2018</LastupdatedDate>
<Status>ACTIVE</Status>
</AotReversefeedback>
<AotReversefeedback>
<Refid>N202240</Refid>
<DPID />
<TrdAccOpenId>83082240 </TrdAccOpenId>
<TrdAccOpenDate>May 7 2018 12:00AM </TrdAccOpenDate>
<EntryDate>03/05/2018</EntryDate>
<ITicketStatus>KRA</ITicketStatus>
<LastupdatedDate>07/05/2018</LastupdatedDate>
<Status>ACTIVE</Status>
</AotReversefeedback>
</NewDataSet>
存储过程将获取包含xml数据的输入字符串。可以使用什么方法将XML数据插入表中?将是以下方法:
WITH t AS
(SELECT XMLTYPE(
'<NewDataSet>
<AotReversefeedback>
<Refid>N161144</Refid>
<DPID />
<TrdAccOpenId>92021144 </TrdAccOpenId>
<TrdAccOpenDate>May 7 2018 12:00AM </TrdAccOpenDate>
<EntryDate>25/03/2018</EntryDate>
<ITicketStatus>POA</ITicketStatus>
<LastupdatedDate>07/05/2018</LastupdatedDate>
<Status>ACTIVE</Status>
</AotReversefeedback>
<AotReversefeedback>
<Refid>N202240</Refid>
<DPID />
<TrdAccOpenId>83082240 </TrdAccOpenId>
<TrdAccOpenDate>May 7 2018 12:00AM </TrdAccOpenDate>
<EntryDate>03/05/2018</EntryDate>
<ITicketStatus>KRA</ITicketStatus>
<LastupdatedDate>07/05/2018</LastupdatedDate>
<Status>ACTIVE</Status>
</AotReversefeedback>
</NewDataSet>') AS XML_DATA
FROM dual)
SELECT
refid,
DPID,
trdaccopenid,
trdaccopendate,
TO_DATE(entrydate_str, 'dd/mm/yyyy') AS entrydate,
iticketstatus,
TO_DATE(LastupdatedDate_str, 'dd/mm/yyyy') AS LastupdatedDate,
status
FROM t
CROSS JOIN XMLTABLE('/NewDataSet/AotReversefeedback' PASSING XML_DATA COLUMNS
refid NVARCHAR2(20) PATH 'Refid',
DPID NVARCHAR2(20) PATH 'DPID',
trdaccopenid NUMBER(9) PATH 'TrdAccOpenId',
trdaccopendate NVARCHAR2(20) PATH 'TrdAccOpenDate',
entrydate_str VARCHAR2(15) PATH 'EntryDate',
iticketstatus NVARCHAR2(20) PATH 'ITicketStatus',
lastupdateddate_str VARCHAR2(15) PATH 'LastupdatedDate',
status NVARCHAR2(20) PATH 'Status'
) x;
也可以工作,但该函数已弃用。将是以下函数:
WITH t AS
(SELECT XMLTYPE(
'<NewDataSet>
<AotReversefeedback>
<Refid>N161144</Refid>
<DPID />
<TrdAccOpenId>92021144 </TrdAccOpenId>
<TrdAccOpenDate>May 7 2018 12:00AM </TrdAccOpenDate>
<EntryDate>25/03/2018</EntryDate>
<ITicketStatus>POA</ITicketStatus>
<LastupdatedDate>07/05/2018</LastupdatedDate>
<Status>ACTIVE</Status>
</AotReversefeedback>
<AotReversefeedback>
<Refid>N202240</Refid>
<DPID />
<TrdAccOpenId>83082240 </TrdAccOpenId>
<TrdAccOpenDate>May 7 2018 12:00AM </TrdAccOpenDate>
<EntryDate>03/05/2018</EntryDate>
<ITicketStatus>KRA</ITicketStatus>
<LastupdatedDate>07/05/2018</LastupdatedDate>
<Status>ACTIVE</Status>
</AotReversefeedback>
</NewDataSet>') AS XML_DATA
FROM dual)
SELECT
refid,
DPID,
trdaccopenid,
trdaccopendate,
TO_DATE(entrydate_str, 'dd/mm/yyyy') AS entrydate,
iticketstatus,
TO_DATE(LastupdatedDate_str, 'dd/mm/yyyy') AS LastupdatedDate,
status
FROM t
CROSS JOIN XMLTABLE('/NewDataSet/AotReversefeedback' PASSING XML_DATA COLUMNS
refid NVARCHAR2(20) PATH 'Refid',
DPID NVARCHAR2(20) PATH 'DPID',
trdaccopenid NUMBER(9) PATH 'TrdAccOpenId',
trdaccopendate NVARCHAR2(20) PATH 'TrdAccOpenDate',
entrydate_str VARCHAR2(15) PATH 'EntryDate',
iticketstatus NVARCHAR2(20) PATH 'ITicketStatus',
lastupdateddate_str VARCHAR2(15) PATH 'LastupdatedDate',
status NVARCHAR2(20) PATH 'Status'
) x;
也可以工作,但函数已弃用。重复的重复的重复的重复的我没有固定的xml行数可以随时不同,我将字符串xml作为输入到sp。它与任何数量的
元素一起工作。我没有固定的xml行数可以随时不同,我将字符串xml作为输入到sp。它与任意数量的
元素。
REFID DPID TRDACCOPENID TRDACCOPENDATE ENTRYDATE ITICKETSTATUS LASTUPDATEDDATE STATUS
N161144 92021144 May 7 2018 12:00AM 25.03.2018 POA 07.05.2018 ACTIVE
N202240 83082240 May 7 2018 12:00AM 03.05.2018 KRA 07.05.2018 ACTIVE