java.sql.SQLException: 违反协议: [12]

表名:V_WJW_IPT_ADMISSIONNOTE
表结构:
[img]http://dl2.iteye.com/upload/attachment/0104/0735/c4fc72f8-766f-390f-b7d9-beaf414ccc0e.png[/img]

由于项目测试需要,需要将表[V_WJW_IPT_ADMISSIONNOTE]中的字段jilunr进行批量修改,编写测试代码如下:
	@Test
public void update_jilunr() throws ClassNotFoundException, SQLException, IOException {

Connection conn = getConnection(ResourceBundle.getBundle("jdbc/jdbc"));
String xml = FileUtils.readFileToString(new File("target/1.xml"), "GBK");

String sql = "UPDATE V_WJW_IPT_ADMISSIONNOTE SET jilunr=? ";

PreparedStatement ps = conn.prepareStatement(sql);

ps.setString(1, xml);

ps.executeUpdate();

ps.close();
conn.close();

}

执行后报错,如下:
[color=red]java.sql.SQLException: 违反协议: [12]
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:464)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:192)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:207)
at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:1044)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1329)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3584)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3665)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeUpdate(OraclePreparedStatementWrapper.java:1352)
at demo.oracle.UpdateDemo.update_jilunr(UpdateDemo.java:49)
...
[/color]

折腾了半天,仍不知问题在哪,无意间我修改了SQL语句,如下:
		String sql = "UPDATE V_WJW_IPT_ADMISSIONNOTE SET jilunr=? WHERE JZLSH='ZY240889'";

再次执行,则修改通过!
o(︶︿︶)o 唉,看来[LONG]型大字段字段的修改是不能批量修改啊!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值