Oracle 按ROWID删除
我想运行这个查询Oracle 按ROWID删除,oracle,rowid,Oracle,Rowid,我想运行这个查询 DELETE FROM A006873.GC_CLIENTS WHERE ROWID = '14519'; 但我得到了这个错误: SQL.SQL:错误(2,15):ORA-01410:无效的ROWID 我进入了GC\u客户 ID NUMBER NAME 14519 0000017690 VILLAVINE 如果我的身份证正确,我不知道怎么了。 顺便说一下,我正在使用一个序列,我不想用删除它,其中ID='14519' ID=14519不是ROWID。
DELETE FROM A006873.GC_CLIENTS
WHERE ROWID = '14519';
但我得到了这个错误:
SQL.SQL:错误(2,15):ORA-01410:无效的ROWID
我进入了GC\u客户
ID NUMBER NAME
14519 0000017690 VILLAVINE
如果我的身份证正确,我不知道怎么了。
顺便说一下,我正在使用一个序列,我不想用
删除它,其中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是一个psuedocolumn,返回行的地址 如果不想按Id删除,可以尝试此操作
delete from A006873.GC_CLIENTS
WHERE ROWID in (select rowid from A006873.GC_CLIENTS where id = '14519');
从ID='14519'返回的GC_客户机中选择ROWID有什么关系?使用序列有什么关系?假设ID是主键,按ID或ROWID删除也会做同样的事情。谢谢,伙计,这帮了大忙。我想更多地了解甲骨文,你知道一本好书吗?或者类似的?