【发布时间】:2015-12-29 16:23:38
【问题描述】:
当我尝试执行以下代码时出现以下错误。
ORA-19011: 字符串缓冲区太小
SELECT filecontent
FROM
(SELECT XMLTYPE(REGEXP_REPLACE(filecontent, '<Transaction .*>', '<Transaction>')) filecontent
FROM example_table where somecondition = true)
) xmlContent
filecontent 是一个类型为 XMLTYPE 的列。我们在此列中存储了一个 XML 文件。
如果 xml 文件内容超过 4000 个字符,则会出现此错误。如果任何 xml 文件的长度小于 4000 个字符,则不会发生此错误。我们在 Oracle 11G 中。因此,根据文档,我们应该能够在 filecontent 列中存储 4GB 的内容。我在想问题是 REGEXP_REPLACE 函数试图读取我们在缓冲区中遇到这个问题的文件内容。我可能错了。非常感谢这方面的任何帮助。
【问题讨论】: