我想这是一个反复出现的问题,但还没有找到合适的解决方案。基本上我试图通过***DB2***过程将32000多个字符的XML插入到CLOB列中。插入失败,出现以下错误,DB2认为输入是String而不是CLOB数据类型。您能建议需要做什么吗?
标准电位
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
1条答案
按热度按时间rm5edbpk1#
DB2中的字符文字被限制在大约32K字节。要处理更大的LOB,需要避免使用SQL文字值。
一种无需额外编程即可完成此操作的方法是将[将来的] CLOB内容写入文件,然后使用
IMPORT
或LOAD
将其内容插入列中。或者,您可以在过程调用周围 Package 一个简单的Java程序,在其中使用
PreparedStatement.setClob()
处理大型XML文档。