Oracle 删除操作从多个左外部联接中删除数据

Oracle 删除操作从多个左外部联接中删除数据,oracle,sql-delete,Oracle,Sql Delete,上面的代码是mysql中的删除操作,我需要将其转换为oracle 12c数据库。 你能帮帮我吗 因为Oracle不支持在一个查询中进行多次删除 我需要的方法,如何做删除操作时,我们有 DELETE mp.*, rp.*, per.*, pv.* FROM my_privilege mp LEFT JOIN ro_priv rp ON rp.privilege_id IN (privilege_id_rep) LEFT JOIN person_priv per ON per.person_pri

上面的代码是mysql中的删除操作,我需要将其转换为oracle 12c数据库。 你能帮帮我吗

因为Oracle不支持在一个查询中进行多次删除

我需要的方法,如何做删除操作时,我们有

DELETE mp.*, rp.*, per.*, pv.*
FROM my_privilege mp 
LEFT JOIN ro_priv rp ON rp.privilege_id IN (privilege_id_rep)
LEFT JOIN person_priv per ON per.person_priv_id IN (privilege_id_rep)
LEFT JOIN privilege pv ON pv.privilege_id IN (privilege_id_rep)
WHERE (logino_id = p_int_logino_id);

操作

据我所知,在Oracle中,您应该一个表一个表地删除,也就是说,您不能在一个
delete
语句中影响多个表。因此,这将是

delete from table
left join table1
left join table2
left join table3
left join table4
where condition

如果存在外键约束,请查看是否使用了删除级联上的
,以便删除主行时删除所有详细信息(在一条语句中)。

上述答案对我没有用处。不幸的是,“上述答案”,即每个表单独的删除语句,给出唯一有效的Oracle语法。是的,但这里我有多个左连接,因此我需要从我的\u特权mp where mp.some\u id中删除(这里我需要所有左连接);
delete from my_privilege mp
  where mp.some_id in (select x.some_id from some_other_table x ...);

delete from person_priv per
  where per.some_id in (select x.some_id from some_other_table x ...);

etc.