只是想知道如何使用合并语句将下面的查询转换为 oracle 查询?
Posted
技术标签:
【中文标题】只是想知道如何使用合并语句将下面的查询转换为 oracle 查询?【英文标题】:Just wondering how can i convert this below query to a oracle query using merge statement? 【发布时间】:2020-10-19 10:38:49 【问题描述】:UPDATE WRK_VTNHMBENTEMP BEN
INNER JOIN wrk_vtnhmbenaccmap ACC ON BEN.WFID = ACC.WFID
LEFT OUTER JOIN vtsmbankbranch BNK ON BNK.BANKNAME = ACC.benbankname
BEN.CURRSTATUSDESC := NVL(BEN.CURRSTATUSDESC,'')||'|'||'Bank Name is not Valid: '||ACC.benbankname;Ben.CURRSTATUSCODE:='30'
where BEN.WFID=IN_WFID AND BNK.BANKBRANCHID IS NULL
;
【问题讨论】:
此查询只会产生语法错误。请说明您想要完成的任务。 请看:Why should I provide an MCRE for what seems to me to be a very simple SQL query? 我还是新手。我只是代表我的兄弟这样做。我刚刚纠正了该查询中的一个小错误。你能帮我转换一下吗 您使用的是 mysql 还是 Oracle? (该 UPDATE 不会同时在两者上运行。) 对不起,我的错。他尝试使用 sqlines 网站将实际的 MySQL 查询转换为 oracle。我将使用实际查询更新问题。谢谢 【参考方案1】:到目前为止,您发布的内容可能是这样的(假设最后一行的IN_WFID
代表某种参数):
MERGE INTO wrk_vtnhmbentemp ben
USING (SELECT acc.wfid, acc.benbankname
FROM wrk_vtnhmbenaccmap acc
LEFT JOIN vtsmbankbranch bnk
ON bnk.bankname = acc.benbankname
WHERE bnk.bankbranchid IS NULL) x
ON (ben.wfid = x.wfid)
WHEN MATCHED
THEN
UPDATE SET
ben.currstatusdesc =
NVL (ben.currstatusdesc, ' ')
|| '|'
|| 'Bank name is not valid: '
|| x.benbankname,
ben.currstatuscode = '30'
WHERE ben.wfid = in_wfid;
【讨论】:
这正是我想要的。这真的很有帮助。非常感谢。以上是关于只是想知道如何使用合并语句将下面的查询转换为 oracle 查询?的主要内容,如果未能解决你的问题,请参考以下文章