PreparedStatement的怪异问题
2007-03-29 22:46 | Filed Under Java |
详细代码和数据库(Oracle)见附件,本来很简单的事情没想到让我碰到了诡异的问题。
PreparedStatement pstmt = conn.prepareStatement("update followcase set customitems=? where id=?");
pstmt.setString(1, customItems);
pstmt.setString(2, "4788");
pstmt.setString(1, customItems);
pstmt.setString(2, "4788");
这么写必然报java.sql.SQLException: ORA-01461: 仅可以为插入 LONG 列的 LONG 值赋值。
如果把第二个参数值直接写入sql里就没问题,可以肯定的是原因必然是因为customItems超过一定长度,据smth上大大说当长度超过4000/3的时候可能会出问题。
现在为了解决无法插入的问题,只能先把除了customitems字段的insert进去,然后再来update它,晕。
PreparedStatement有什么特殊限制吗?
下载:测试代码及数据库
标签:Java, jdbc, PreparedStatement, sql相关日志


