PreparedStatement的怪异问题

详细代码和数据库(Oracle)见附件,本来很简单的事情没想到让我碰到了诡异的问题。

PreparedStatement pstmt = conn.prepareStatement("update followcase set customitems=? where id=?");
pstmt.setString(1, customItems);
pstmt.setString(2, "4788");

这么写必然报java.sql.SQLException: ORA-01461: 仅可以为插入 LONG 列的 LONG 值赋值。
如果把第二个参数值直接写入sql里就没问题,可以肯定的是原因必然是因为customItems超过一定长度,据smth上大大说当长度超过4000/3的时候可能会出问题。
现在为了解决无法插入的问题,只能先把除了customitems字段的insert进去,然后再来update它,晕。

PreparedStatement有什么特殊限制吗?

下载:测试代码及数据库

标签:, , ,

相关日志

京ICP备05059555号

收藏 & 分享

Powered by 17fav.com