通过 ROWID 删除
Deleting by ROWID
我想运行这个查询。
DELETE FROM A006873.GC_CLIENTS
WHERE ROWID = '14519';
但是我得到这个错误:
SQL.sql: Error (2,15): ORA-01410: invalid ROWID
我进了GC_CLIENTS
ID NUMBER NAME
14519 0000017690 VILLAVINE
如果我的 ID 正确,我不知道有什么问题。
顺便说一句,我正在使用一个序列,我不想用 WHERE ID = '14519'
删除它。
ID = 14519 不是 ROWID。 ROWID 是用于定位值的内部标识符
SQL> select rowid from t.d;
ROWID
------------------
AAAVqIAAEAAAAInAAA
AAAVqIAAEAAAAInAAB
AAAVqIAAEAAAAInAAC
SQL> delete from t.d where rowid = 'AAAVqIAAEAAAAInAAA';
1 row deleted.
SQL> select rowid from t.d;
ROWID
------------------
AAAVqIAAEAAAAInAAB
AAAVqIAAEAAAAInAAC
你想要的只是
DELETE FROM A006873.GC_CLIENTS
WHERE ID = 14519;
ROWID 是一个伪列,returns 行的地址。
不想按Id删除可以试试这个
delete from A006873.GC_CLIENTS
WHERE ROWID in (select rowid from A006873.GC_CLIENTS where id = '14519');
我想运行这个查询。
DELETE FROM A006873.GC_CLIENTS
WHERE ROWID = '14519';
但是我得到这个错误:
SQL.sql: Error (2,15): ORA-01410: invalid ROWID
我进了GC_CLIENTS
ID NUMBER NAME
14519 0000017690 VILLAVINE
如果我的 ID 正确,我不知道有什么问题。
顺便说一句,我正在使用一个序列,我不想用 WHERE ID = '14519'
删除它。
ID = 14519 不是 ROWID。 ROWID 是用于定位值的内部标识符
SQL> select rowid from t.d;
ROWID
------------------
AAAVqIAAEAAAAInAAA
AAAVqIAAEAAAAInAAB
AAAVqIAAEAAAAInAAC
SQL> delete from t.d where rowid = 'AAAVqIAAEAAAAInAAA';
1 row deleted.
SQL> select rowid from t.d;
ROWID
------------------
AAAVqIAAEAAAAInAAB
AAAVqIAAEAAAAInAAC
你想要的只是
DELETE FROM A006873.GC_CLIENTS
WHERE ID = 14519;
ROWID 是一个伪列,returns 行的地址。
不想按Id删除可以试试这个
delete from A006873.GC_CLIENTS
WHERE ROWID in (select rowid from A006873.GC_CLIENTS where id = '14519');