小编Gab*_*son的帖子

为什么Oracle用fetch更改rowid?

我有这样的查询:

select w.rowid, w.waclogin
  from tableA w, tableB wa, tableC a
 where wa.alucod = a.alucod
   and w.waclogin = wa.waclogin
   and a.cpf = '31808013875'
   and rownum <= 1;
Run Code Online (Sandbox Code Playgroud)

结果是:

ROWID               WACLOGIN
AAA0CEAHSAABE07ABA  31808013875
Run Code Online (Sandbox Code Playgroud)

但是当我使用fetch(为了提高性能)时,返回的rowid是不同的:

select w.rowid, w.waclogin
  from tableA w, tableB wa, tableC a
 where wa.alucod = a.alucod
   and w.waclogin = wa.waclogin
   and a.cpf = '31808013875'
 fetch first row only;
Run Code Online (Sandbox Code Playgroud)

结果是:

ROWID               WACLOGIN
AAA0DMAHaAAA+ZcAAX  31808013875
Run Code Online (Sandbox Code Playgroud)

为什么要获取更改行号?对我来说,这没有道理。

更新资料

使用提取时,返回的行ID来自表B,而不是表A。

来自3个表格的行ID

oracle plsql

0
推荐指数
1
解决办法
41
查看次数

标签 统计

oracle ×1

plsql ×1