我在更新时从一张表订阅了 Oracle CQN 消息(使用 python cx_oracle)。我只更新一行:
UPDATE my_table SET
REMARKS = 'TEST2'
WHERE my_table_primary_key = 123456;
提交后,我收到 2 条相同表的消息,相同的操作(更新),但有 2 个不同的 ROWID:'1234567890AAhF5AAF' 和 '1234567890AAhaqAAA'
两个 ROWID 都指向同一个表 (my_table)。在选择之后,我有两行具有相同的 id:
SELECT DBMS_ROWID.rowid_object('1234567890AAhF5AAF') AS ID FROM dual
UNION ALL
SELECT DBMS_ROWID.rowid_object('1234567890AAhaqAAA') AS ID FROM dual;
但最奇怪的是 - 只有一个 ROWID 指向真实记录,由另一个选择不返回任何内容(但不是无效的 ROWID!):
select * from my_table where rowid = '1234567890AAhF5AAF'
UNION ALL
select * from my_table where rowid = '1234567890AAhaqAAA';
有人可以建议发生了什么吗?