EXECUTE或OPEN语句中主机变量的值超出范围错误



我正试图将HTML内容插入到表的一列中。

这是我的代码

String Query= "INSERT INTO MyTABLE (id,html) VALUES (?,?)";
insert = conn.prepareStatement(Query); 
insert.setInt(1, id);
insert.setString(2, html);

这是我的DDL

CREATE TABLE MYTAB
(
    ID INTEGER NOT NULL,
    PRIMARY KEY (ID),
    HTML VARCHAR (10000) 
);

在插入html字段时,我得到了以下异常。

[8/26/13 4:50:01:344 EDT] 00000796 SystemOut     The value of a host variable in the EXECUTE or OPEN statement is out of range for its corresponding use.. SQLCODE=-302, SQLSTATE=22001, DRIVER=3.57.110

html内容的大小相当大(可能大小不同,因此无法给出确切的大小)。

我使用varchar的原因是,很容易引入相同的html内容并在UI上显示,而不是将其转换为xml并定义一个xml列来代替varchar列。

你能帮我解决这个问题吗?

html有多大?我敢肯定,当你试图插入超过10k字节时,会出现这个错误。

我似乎还记得DB2中varchar属性的32k限制,所以也许您需要考虑使用CLOB而不是varchar。。。

干杯,

最新更新