ORA-08006:指定的行不再存在



我已经删除了一些使用LIST对状态Y和n进行分区的表中的重复项。

delete from my_table partition(active_flag_y) where rowid = ( duplicate logic )

删除后,我开始运行我的Informatica映射,它具有更新+插入逻辑。

更新的时候给我

ORA-08006:指定行不存在

我正在使用rowid删除,但rowid存在于我的表中。

有人能帮我解决这个问题吗

在更新时给我ORA-08006:指定的行不再存在

包括update的附加条件:

update your_table a
set ...
-- add this:
where exists (select null
from table_from_which_you_deleted_rows b
where b.rowid = a.rowid 
);

下一个问题是:您将如何处理YOUR_TABLEROWID不存在于您引用的表中的行?

正如您所注意到的,ROWID并不是您可以依赖的最佳信息。文档表示:

例如,如果使用Import和Export实用程序删除并重新插入一行,则其行号可能会更改。如果你删除了一个行,那么Oracle可能会将它的行号重新分配给稍后插入的新行。

最新更新