更新在 Oracle 中不起作用,2 个表 [重复]

Posted

技术标签:

【中文标题】更新在 Oracle 中不起作用,2 个表 [重复]【英文标题】:Update not working in Oracle, 2 tables [duplicate] 【发布时间】:2015-03-15 06:29:24 【问题描述】:

这在 Oracle 中不起作用,请帮助

update mrp_indeksy mrp
inner join indeksy i
on i.indeks_czesci=mrp.indeks_czesci 
set mrp.jest_w_raporcie_pzm='N'
where i.id_grupy='WG' and mrp.kod_uzyskania='P' and i.nazwa_czesci NOT LIKE 'ZAWI%'

【问题讨论】:

这个问题已经在 Stack Overflow 上得到解答。请检查这个问题:***.com/questions/2446764/… 建议您在发帖前在网站上搜索相关问题。 【参考方案1】:

通常在 Oracle 中使用WHERE EXISTS 进行这种类型的更新查询:

UPDATE mrp_indeksy mrp
   SET mrp.jest_w_raporcie_pzm='N'
 WHERE mrp.kod_uzyskania='P'
   AND EXISTS ( SELECT 1 FROM indeksy i
                 WHERE i.indeks_czesci = mrp.indeks_czesci
                   AND i.id_grupy='WG'
                   AND i.nazwa_czesci NOT LIKE 'ZAWI%' )

您可以阅读有关如何进行此类更新的更多信息at this page。除了上面的WHERE EXISTS 方法,您还可以做一个“可更新视图”。但是,您不能将更新与 JOINUPDATE ... FROM 结合使用是无效的 Oracle 语法。

【讨论】:

为什么投反对票...愿意解释一下? 有更多信息链接的有用答案!

以上是关于更新在 Oracle 中不起作用,2 个表 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

将项目从 2.2 更新到 3.1(缺少程序集)或如何在 .NET Core 中使用 API POST 请求时,PostAsJsonAsync()在 .Net Core 3.1 中不起作用 [重复]

setState 在 setInterval 中不起作用 [重复]

使用子查询更新在雪花中不起作用

为啥非贪心量词有时在 Oracle 正则表达式中不起作用?

为啥 pi() 函数在使用其 JDBC 驱动程序的 Oracle 中不起作用?

单个接口控制器中的两个表在 WatchKit 中不起作用