只读结果集的无效操作:updateString

hu山

以下是我的代码(重新构造),该代码根据条件选择并更新“状态”字段。(使用Servlet,Oracle作为后端和JDBC驱动程序)

ResultSet rs=null;
String query = "select A.NAME, A.ADDRESS, A.STATUS, B.CLASS from TABLE_ONE A, TABLE_TWO B where A.STATUS='N'";
pstmt = con.prepareStatement(query,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs = pstmt.executeQuery();
while(rs.next())
{
    String name = rs.getString("NAME");
    String address = rs.getString("ADDRESS");
    String class = rs.getString("CLASS");

    String msg = //Other statements to check what status to be set

    if(msg.equals("OK"))
        rs.updateString("STATUS", "S");
    else
        rs.updateString("STATUS", "E");
    rs.updateRow();
}

更新时出现错误:

java.sql.SQLException: Invalid operation for read only resultset: updateString

任何建议将不胜感激。

更新1:当select语句从单个表中选择数据时,相同的代码正在工作,因此在单个查询中从两个表中选择数据时是否存在任何问题?

[注意:正如@javaBeginner在评论中提到的,它仅适用于一张表。

尤金·霍扎(Eugene Hoza)

对增强结果集的查询具有以下限制。不遵循这些准则将导致JDBC驱动程序选择备用结果集类型或并发类型。

产生可更新的结果集(根据规范):

  • 查询只能从单个表中选择,并且不能包含任何联接操作。

另外,为了使插入可行,查询必须选择所有不可为空的列以及所有没有默认值的列。*查询不能使用“ SELECT *”。(但是请参阅下面的解决方法。)*查询必须仅选择表列。它不能选择派生的列或聚合,例如一组列的SUM或MAX。

产生对滚动敏感的结果集:

  • 查询不能使用“ SELECT *”。(但是请参阅下面的解决方法。)
  • 查询只能从单个表中选择。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在多线程环境中使用select for update nowait时,只读结果集的操作无效

来自分类Dev

在多线程环境中使用select for update nowait时,只读结果集的操作无效

来自分类Dev

Oracle-对结果集的每一行执行操作

来自分类Dev

java.sql.SQLException:对空结果集的非法操作

来自分类Dev

Oracle-对结果集的每一行执行操作

来自分类Dev

从pandas groupby操作结果构造一个超集

来自分类Dev

java.sql.SQLException 对空结果集的非法操作

来自分类Dev

NASM程序集16位“操作码和操作数的无效组合”

来自分类Dev

PreparedStatementCallback;SQL[SQLStatememnt] 的无效结果集访问;嵌套异常是java.sql.SQLException:无效的列索引Spring Auth

来自分类Dev

Azure移动服务:无效的操作异常(未找到特定于平台的程序集)

来自分类Dev

Bochs:程序集远跳转在虚假存储区中丢失(无效的操作码错误)

来自分类Dev

为什么只读输入字段无效

来自分类Dev

Qml中的“无效的属性分配:..只读属性”

来自分类Dev

Django表单集无效

来自分类Dev

如果结果 == 'no' - 语法无效

来自分类Dev

java.sql.SQLException:对空结果集的非法操作。验证时

来自分类Dev

java.sql.SQLException:对空结果集的非法操作。验证时

来自分类Dev

跨线程操作无效

来自分类Dev

无效的操作参数++ /-

来自分类Dev

Gmail RSVP操作无效

来自分类Dev

E:无效的操作安装

来自分类Dev

cfapi:云操作无效

来自分类Dev

NSCollectionViewItem按钮操作无效

来自分类Dev

NSCollectionViewItem按钮操作无效

来自分类Dev

E:无效的操作安装

来自分类Dev

OpenGL无效操作

来自分类Dev

无效的操作参数++ /-

来自分类Dev

“ git ls-remote”是只读操作吗?

来自分类Dev

如何实施只读控制器操作

Related 相关文章

热门标签

归档