【问题标题】:Import XML file greater than 2 GB to DB2 9.7将大于 2 GB 的 XML 文件导入 DB2 9.7
【发布时间】:2015-07-17 02:52:24
【问题描述】:

我编写了一个 Java 程序,它在数据库中流式传输大于 2GB 的 XML 文件。它适用于 Windows 上的 db2 版本 10.5.5,但失败并出现以下错误:SQLCODE=-302, SQLSTATE=22001, SQLERRMC=null, DRIVER=4.19.26 on DB2 Linux 9.7。 我明白这意味着正在发送的数据大于列大小。我想知道 DB2 9.7 是否存在问题,为什么该程序只能在 10.5 上运行,如果是,请提出解决问题的建议。

【问题讨论】:

    标签: xml db2 db2-luw


    【解决方案1】:

    我认为这是因为在 DB2 for LUW v10.1 之前,XML 数据被序列化为字符数据以便在 JDBC 客户端和服务器之间传输,并且序列化的 XML 有 2 GB 的限制。从 10.1 版本开始,XML 数据默认以二进制形式传输,并且不适用序列化限制。

    如果您必须使用过时的 DB2 v9.7,我认为您可以使用 DB2 LOAD 命令插入您的 XML 文件,正如您之前的问题所建议的那样。

    参考资料:

    1. SQL and XML limits(搜索“序列化 XML”)。
    2. 二进制 XML 格式 -- new in DB2 10.1

    【讨论】:

    • 感谢您的回复。我一直在搜索这些信息,它占用了我很多时间。我将不得不就这一发现写一份报告;您能否提供一个参考来验证我的报告中的这些信息。
    • 感谢您的参考。我按照您的建议尝试了 DB2 load 命令。它适用于较小的 xml 文件,但对于大小超过 2 GB 的 xml 文件仍然失败。这是我得到的错误: SQL3306N 向表中插入一行时发生 SQL 错误“-901”。 SQL0901N 由于数据库系统错误,SQL 语句或命令失败。 (原因“”。) SQL SSTATE=58004 SQL3110N
    猜你喜欢
    • 2019-05-17
    • 2014-10-03
    • 1970-01-01
    • 1970-01-01
    • 2012-09-16
    • 1970-01-01
    • 1970-01-01
    • 2016-12-30
    • 2021-08-16
    相关资源
    最近更新 更多