尝试更新表时 SQL Developer 中的错误

Posted

技术标签:

【中文标题】尝试更新表时 SQL Developer 中的错误【英文标题】:Error in SQL Developer when trying to update table 【发布时间】:2021-06-20 18:59:12 【问题描述】:

我想更新表 skuxloc 数量以等于 lotxlocxid 中每个 sku 的数量之和,如下所示:

update skuxloc sl
set sl.qty = lli.sumqty
inner join
(
  select sku, sum(qty) sumqty
  from lotxlocxid
  where loc = 'DRSLN7STG'
  group by sku
) lli on lli.sku = sl.sku
where sl.sku in
('108720-419-S',
'108720-419-XS',
'876070-100-11',
'876070-100-12',
'876070-100-9.5',
'942836-100-10.5',
'942836-100-6.5',
'942837-100-6.5',
'CW5594-100-6',
'CW5594-100-6.5',
'CW5594-100-8',
'DD1583-402-M',
'942836-100-9');

我在第 2 行收到错误,表明此 SQL 命令未正确结束。

知道我可能做错了什么吗?

【问题讨论】:

【参考方案1】:

Oracle 不支持更新中的join。而是使用相关子查询:

update skuxloc sl
    set sl.qty = (select sum(lli.qty)
                  from lotxlocxid lli
                  where loc = 'DRSLN7STG' and
                        lli.sku = sl.sku
                 )
    where sl.sku in
    ('108720-419-S',
    '108720-419-XS',
    '876070-100-11',
    '876070-100-12',
    '876070-100-9.5',
    '942836-100-10.5',
    '942836-100-6.5',
    '942837-100-6.5',
    'CW5594-100-6',
    'CW5594-100-6.5',
    'CW5594-100-8',
    'DD1583-402-M',
    '942836-100-9');

【讨论】:

以上是关于尝试更新表时 SQL Developer 中的错误的主要内容,如果未能解决你的问题,请参考以下文章

尝试查看表时 Oracle SQL Developer 没有响应(或建议使用 Oracle Mac 客户端)

尝试连接到 SQL 表时,MS Access 2007 中的查询错误

创建 SQL 触发器以更新另一个表时出错

在 Oracle SQL Developer 连接窗口中选择表时如何避免默认获取表定义

更新表时如何改进 Spark 中的 SQL 查询? (子查询中的'NOT IN')

通过 excel VBA 加入 SQL 表时出错