Oracle SQL Developer:如果存在更新,则插入缺少右括号编译器错误

Oracle SQL Developer:如果存在更新,则插入缺少右括号编译器错误,第1张

概述我一直在尝试在Oracle的SQL Developer中编写一个SQL查询,如果它存在则会更新一行,如果不存在则插入一行.除主键(UNITOFMEASURE_USERID)外,还有三列:UNITOFMEASUREID,USERID和ACTIVE. UNITOFMEASUREID和USERID的组合存在唯一约束,因此对于每个值组合,可以有一行或0. 我一直在尝试两种不同的SQL安排,并且它们都返回类 我一直在尝试在Oracle的sql Developer中编写一个SQL查询,如果它存在则会更新一行,如果不存在则插入一行.除主键(UNITOFMEASURE_USERID)外,还有三列:UNITOFMEASUREID,USERID和ACTIVE. UNITOFMEASUREID和USERID的组合存在唯一约束,因此对于每个值组合,可以有一行或0.
我一直在尝试两种不同的sql安排,并且它们都返回类似的编译错误,抱怨缺少右括号.
这是我尝试过的:
第一个安排:

UPDATE norSEMEN.UNITOFMEASURE_USER SET (ACTIVE=1) WHERE UNITOFMEASUREID=:unitOfMeasureID AND USERID=:userIDIF @@ROWCOUNT=0    INSERT INTO norSEMEN.UNITOFMEASURE_USER (UNITOFMEASUREID,USERID) VALUES (:unitOfMeasureID,:userID)

首次安排的sql Developer错误响应:

Error at Command line:1 Column:46Error report:sql Error: ORA-00907: missing right parenthesis00907. 00000 -  "missing right parenthesis"*Cause:    *Action:

第二种安排:

IF EXISTS (SELECT * FROM norSEMEN.UNITOFMEASURE_USER WHERE UNITOFMEASUREID=:unitOfMeasureID AND USERID=:userID)    UPDATE norSEMEN.UNITOFMEASURE_USER SET (ACTIVE = 1) UNITOFMEASUREID=:unitOfMeasureID AND USERID=:userIDELSE    INSERT INTO norSEMEN.UNITOFMEASURE_USER (UNITOFMEASUREID,:userID)

第二种安排的sql Developer错误响应:

Error at Command line:2 Column:47Error report:sql Error: ORA-00907: missing right parenthesis00907. 00000 -  "missing right parenthesis"*Cause:    *Action:

我无法弄清楚为什么sql Developer认为缺少括号.
有人可以帮忙吗?

解决方法 在您的情况下,如果记录匹配条件为真,则需要使用任何过程处理来更新表的活动列,或者如果不匹配则插入新记录.您可以使用 merge在单个语句中执行此 *** 作.

merge  into unitofmeasure_userusing dual  on (      unitofmeasureID = :unitOfMeasureID AND       userID = :userID     )when matched then update         set active = 1when not matchedthen insert (unitofmeasureID,userID)        values (:unitOfMeasureID,:userID);
总结

以上是内存溢出为你收集整理的Oracle SQL Developer:如果存在更新,则插入缺少右括号编译器错误全部内容,希望文章能够帮你解决Oracle SQL Developer:如果存在更新,则插入缺少右括号编译器错误所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1166466.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存