此查询运行正常,但作为Oracle中的更新语句,它失败

时间:2017-03-17 02:32:10

标签: oracle sql-update left-join

SELECT  arinvt.buyer_code_id
FROM arinvt
LEFT JOIN arinvt_vendors
ON arinvt.ID = arinvt_vendors.ARINVT_ID
where arinvt_vendors.vendor_id like 61690 
and arinvt_vendors.is_default ='Y' 
and arinvt.buyer_code_id is null

update arinvt 
set arinvt.buyer_code_id = 66 
SELECT arinvt.buyer_code_id 
FROM arinvt 
LEFT JOIN arinvt_vendors 
ON arinvt.id = arinvt_vendors.arinvt_id 
(where arinvt_vendors.vendor_id like 61690 
and arinvt_vendors.is_default ='Y' 
and arinvt.buyer_code_id is null)
  

SQL错误:ORA-00933:SQL命令未正确结束   00933. 00000 - " SQL命令未正确结束"   *原因:

     

< *操作:

在我发布我之前,我查看了其他(重复)问题并尝试了此更新:

UPDATE     (SELECT arinvt.buyer_code_id              来自arinvt         LEFT JOIN arinvt_vendors ON arinvt.id = arinvt_vendors.arinvt_id       其中arinvt_vendors.vendor_id如61690和arinvt_vendors.is_default =' Y'       和arinvt.buyer_code_id为空      )X SET arinvt.buyer_code_id = 66

我得到了:

错误报告 - SQL错误:ORA-00904:" ARINVT"。" BUYER_CODE_ID":无效标识符 00904. 00000 - "%s:无效标识符" *原因:
*操作:

我不确定我做错了什么。有人可以帮忙,我们需要这个来修复我们的生产系统。

1 个答案:

答案 0 :(得分:0)

这里有语法错误:

arinvt_vendors.is_default 'Y'

我猜你可能意味着

arinvt_vendors.is_default = 'Y'