问题描述
我正在将操作系统文件中的XML数据复制到CLOB中,然后将其转换为XMLTYPE,用于将信息提取到关系数据库中。
这个解决方案已经工作了多年,但我收到了一个业务要求来处理80-500mb的大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列
如果您认为自己有足够的内存来处理文档,但仍然遇到错误,请与支持人员联系。
也就是说,有几个与这个错误和XML处理相关的错误。检查MOS,看看这些是否影响你。
还要拆分流程,看看是否可以准确指出正在发生的事情:
-将文件加载到带有CLOB的临时表中
-从这里复制到XMLType列
如果您认为自己有足够的内存来处理文档,但仍然遇到错误,请与支持人员联系。
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




