暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle CLOB到XMLTYPE内存不足问题

ASKTOM 2020-05-27
1178

问题描述

我正在将操作系统文件中的XML数据复制到CLOB中,然后将其转换为XMLTYPE,用于将信息提取到关系数据库中。
这个解决方案已经工作了多年,但我收到了一个业务要求来处理80-500mb的大XML文件。如果简单地遵循该过程,它会在将CLOB转换为XMLType时抱怨内存不足的问题。

CREATE TABLE table_with_xml_column (filename VARCHAR2(64), xml_document XMLType);

BEGIN

INSERT INTO /*+append nologging*/table_with_xml_column (filename, xml_document)
  VALUES ('ProcessFile.xml',
          XMLType(bfilename('theDIR', 'ProcessFile.xml'),
          nls_charset_id('AL32UTF8')));
END;
Error report -
ORA-27163: out of memory
ORA-06512: at line 3
27163. 0000 -  "out of memory"
*Cause:    The program ran out of memory when allocating a temporary
           data structure.
*Action:   Increase the amount of memory on the system.


专家解答

听起来你需要更多的记忆;)

也就是说,有几个与这个错误和XML处理相关的错误。检查MOS,看看这些是否影响你。

还要拆分流程,看看是否可以准确指出正在发生的事情:

-将文件加载到带有CLOB的临时表中
-从这里复制到XMLType列

如果您认为自己有足够的内存来处理文档,但仍然遇到错误,请与支持人员联系。
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论