无法将CLOB数据存储到DB2中CLOB定义的列中

qfe3c7zg  于 2022-11-07  发布在  DB2
关注(0)|答案(1)|浏览(353)

我想这是一个反复出现的问题,但还没有找到合适的解决方案。基本上我试图通过***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
rm5edbpk

rm5edbpk1#

DB2中的字符文字被限制在大约32K字节。要处理更大的LOB,需要避免使用SQL文字值。
一种无需额外编程即可完成此操作的方法是将[将来的] CLOB内容写入文件,然后使用IMPORTLOAD将其内容插入列中。
或者,您可以在过程调用周围 Package 一个简单的Java程序,在其中使用PreparedStatement.setClob()处理大型XML文档。

相关问题