无法将 CLOB 数据存储到 DB2 中的 CLOB 定义列中
Unable to store CLOB data in to CLOB defined column in DB2
我猜这是一个反复出现的问题,但还没有找到合适的解决方案。基本上,我试图通过 DB2 过程向 CLOB 列中插入 bit huge XML 即 32000+ 个字符。插入失败并显示以下错误看起来 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 文档。
我猜这是一个反复出现的问题,但还没有找到合适的解决方案。基本上,我试图通过 DB2 过程向 CLOB 列中插入 bit huge XML 即 32000+ 个字符。插入失败并显示以下错误看起来 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 文档。