【问题标题】:How to insert XML file data received from FTP in a table using XMLTABLE?如何使用 XMLTABLE 在表中插入从 FTP 接收的 XML 文件数据?
【发布时间】:2018-04-11 14:52:05
【问题描述】:

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

我目前正在反序列化 XML 文件并生成一个包含所有值的大型插入语句,但插入此语句需要很长时间(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 语句中附加流或流数据?

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

【问题讨论】:

    标签: c# xml plsql dapper xmltable


    【解决方案1】:

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

    问候, 何塞。

    【讨论】:

      猜你喜欢
      • 2014-01-27
      • 1970-01-01
      • 1970-01-01
      • 2011-05-31
      • 1970-01-01
      • 2015-08-12
      • 1970-01-01
      • 1970-01-01
      • 2017-12-06
      相关资源
      最近更新 更多