Oracle ROWID在Java中如何获取并使用,有何实际应用价值?
- 内容介绍
- 文章标签
- 相关推荐
本文共计890个文字,预计阅读时间需要4分钟。
相关专题
ROWID 是 Oracle 里唯一能直接定位物理行的“地址”
它不是主键,也不是索引字段,而是 oracle 内部为每行数据生成的物理位置标识符(格式如 aaas7gaabaaanzkaaa)。只要数据没被迁移(比如 alter table ... move 或表压缩),rowid 就稳定不变。java 中拿到它,就能绕过索引和 where 条件,用最快速度定位并更新某一行——尤其适合高并发下基于“最后看到的那条记录”做增量拉取或乐观锁重试。
Java 中用 JDBC 获取 ROWID 要显式声明类型
Oracle JDBC 驱动默认不把 ROWID 映射成 Java 类型,直接 rs.getString("ROWID") 可能返回 null 或抛异常。
本文共计890个文字,预计阅读时间需要4分钟。
相关专题
ROWID 是 Oracle 里唯一能直接定位物理行的“地址”
它不是主键,也不是索引字段,而是 oracle 内部为每行数据生成的物理位置标识符(格式如 aaas7gaabaaanzkaaa)。只要数据没被迁移(比如 alter table ... move 或表压缩),rowid 就稳定不变。java 中拿到它,就能绕过索引和 where 条件,用最快速度定位并更新某一行——尤其适合高并发下基于“最后看到的那条记录”做增量拉取或乐观锁重试。
Java 中用 JDBC 获取 ROWID 要显式声明类型
Oracle JDBC 驱动默认不把 ROWID 映射成 Java 类型,直接 rs.getString("ROWID") 可能返回 null 或抛异常。

