如何使用XMLTABLE在表中插入从FTP接收的XML文件数据?

时间:2018-04-11 14:52:06

标签: c# xml plsql dapper xmltable

长话短说,我从SFTP客户端收到XML文件,我需要将这些数据存储在oracle数据库中。

我目前正在反序列化XML文件并生成一个包含所有值的大型insert语句,但插入此文件需要永久(120000行为30-50分钟)。

我不想将文件保存在服务器上,所以我宁愿使用FileStream数据

目前我读了这样的XML文件:

using (SftpFileStream stream = sftp.OpenRead(filename))
{
    Xml.Process(stream);
}

所以我想尝试XMLTABLE插入XML文件。

我们说我还没有为数据创建新表,而是收到了流数据。我有以下XML文件,名为line.xml

<?xml version="1.0" encoding="ISO-8859-1"?>
<!--Created by a179-main 0.78.24-->
<cern:lines creationDate="2018-03-16T19:36:05" xmlns:cern="http://www.website.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.website.com ../ns/infrastructure.xsd">
   <cern:line id="10" validFromDate="1996-06-02" validToDate="2078-12-31"/>
   <cern:line id="11" validFromDate="1997-08-03" validToDate="2078-12-31"/>
   <cern:line id="12" validFromDate="1997-08-03" validToDate="2078-12-31"/>
</cern:lines>

我如何使用XMLTABLE将其插入数据库?
另外,我创建了哪些表列?
是否可以在XMLTABLE语句中附加stream或streamdata?

  

额外:我目前正在使用Dapper作为ORM。与ADO.NET几乎相同,但更容易阅读。

1 个答案:

答案 0 :(得分:0)

创建CLOB列并将XML存储在其中。

此致 何塞。