我已在更新时从一张表预订了Oracle CQN消息(使用python cx_oracle)。我只更新一行:
UPDATE my_table SET
REMARKS = 'TEST2'
WHERE my_table_primary_key = 123456;
提交后,我收到2条相同表,相同操作(UPDATE)的消息,但具有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';
有人可以暗示发生了什么事吗?