当前位置: 技术问答>java相关
请教各位:JAVA操作ORACLE的问题 急!!!
来源: 互联网 发布时间:2015-08-01
本文导语: 请各位帮忙看一下问题出在哪儿? ... Statement sqlcmd = sqlCon.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_UPDATABLE); ResultSet rs2=sqlcmd.executeQuery("select * from T_SJK where KMID="+KMID); rs2.moveToInsertRow(); rs2.u...
请各位帮忙看一下问题出在哪儿?
...
Statement sqlcmd = sqlCon.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_UPDATABLE);
ResultSet rs2=sqlcmd.executeQuery("select * from T_SJK where KMID="+KMID);
rs2.moveToInsertRow();
rs2.updateString("SJBZ","test");
rs2.insertRow();
rs2.close();
sqlcmd.close();
...
错误:“对只读结果集的无效操作: moveToInsertRow”
...
Statement sqlcmd = sqlCon.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_UPDATABLE);
ResultSet rs2=sqlcmd.executeQuery("select * from T_SJK where KMID="+KMID);
rs2.moveToInsertRow();
rs2.updateString("SJBZ","test");
rs2.insertRow();
rs2.close();
sqlcmd.close();
...
错误:“对只读结果集的无效操作: moveToInsertRow”
|
我也碰到过这个问题。
执行createStatement(x,x)后,调用sqlCon.getConCurrency()你会发现返回的还是CONCUR_READ_ONLY(值为1007的常量),就是说CONCUR_UPDATABLE参数根本没起作用,由于再java api中Result,Connection,Statement等都是接口,具体由厂商取实现,所以我看了oracle驱动的源代码。发现里面的参数都是:if(i==-1&&j==1)..而不是if(i==this.READ_ONLY&&j==SCROLL)根本没有定义有意义的常量名,把我头看大了也没看出是否支持CONCUR_UPDATABLE,
最后只好:
Statement sqlcmd=sqlCon.createStatement();
sqlcmd.executeUpdate("insert .....");
不知道有没有大牛能解决这个问题。
执行createStatement(x,x)后,调用sqlCon.getConCurrency()你会发现返回的还是CONCUR_READ_ONLY(值为1007的常量),就是说CONCUR_UPDATABLE参数根本没起作用,由于再java api中Result,Connection,Statement等都是接口,具体由厂商取实现,所以我看了oracle驱动的源代码。发现里面的参数都是:if(i==-1&&j==1)..而不是if(i==this.READ_ONLY&&j==SCROLL)根本没有定义有意义的常量名,把我头看大了也没看出是否支持CONCUR_UPDATABLE,
最后只好:
Statement sqlcmd=sqlCon.createStatement();
sqlcmd.executeUpdate("insert .....");
不知道有没有大牛能解决这个问题。