我想这是一个重复的问题,但还没有找到合适的解决方案。 基本上,我正在尝试通过DB2过程将巨大的XML(即32000+个字符(插入到CLOB列中。 插入失败,出现以下错误,看起来 DB2 将输入视为字符串而不是 CLOB 数据类型。 你能建议需要做什么吗?
SP
CREATE OR REPLACE PROCEDURE logging (IN HEADERDATA CLOB(10M))
LANGUAGE SQL
BEGIN
INSERT INTO Logging(Header) VALUES (HEADERDATA);
COMMIT;
END
错误
The string constant beginning with
"'<?xml version="1.0" encoding="UTF-8"?><XXXXXXXX xmlns:xsi="http:" is too long..
SQLCODE=-102, SQLSTATE=54002, DRIVER=XXXXXX
DB2 中的字符文本限制为大约 32K 字节。若要处理较大的 LOB,需要避免使用 SQL 文本值。
无需额外编程即可执行此操作的一种方法是将 [未来] CLOB 内容写入文件,并使用IMPORT
或LOAD
将其内容插入到列中。
或者,您可以在过程调用周围包装一个简单的 Java 程序,您将在其中使用PreparedStatement.setClob()
来处理大型 XML 文档。