Asp.net 如何将xml字符串插入存储过程中的Oracle数据库?

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:

我的XML数据是:

<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