问题标题:
ORACLE关于mergeinto用法!MERGEINTOMSA2008BS.ATYW_ZS_GCZLAUSING(SELECT*fROMLOADTMP.MSA2008BS_ATYW_ZS_GCZLWHEREETL_FIN('I','D','A'))BON(A.ATZSCZLOID=B.ATZSCZLOID)WHENMATCHEDANDB.SHIPFID=''THENUPDATESETA.SHIPFID=B.SHIPFID,A.GCZ
问题描述:
ORACLE关于mergeinto用法!
MERGEINTOMSA2008BS.ATYW_ZS_GCZLA
USING(SELECT*fROMLOADTMP.MSA2008BS_ATYW_ZS_GCZLWHEREETL_FIN('I','D','A'))B
ON(A.ATZSCZLOID=B.ATZSCZLOID)
WHENMATCHEDANDB.SHIPFID=''THENUPDATESET
A.SHIPFID=B.SHIPFID,
A.GCZLDJZHM=B.GCZLDJZHM,
A.CBDJH=B.CBDJH
WHENNOTMATCHEDTHEN
INSERT(A.ATZSCZLOID,A.SHIPFID,A.GCZLDJZHM,A.CBDJH,A.CBCZR)
VALUES(B.ATZSCZLOID,B.SHIPFID,B.GCZLDJZHM,B.CBDJH,B.CBCZR)
;
中因为在WHENMATCHED后加入了AND条件即:ANDB.SHIPFID=''
之后报错,是不是oracle不支持WHENMATCHED后跟条件呢?
刘雁春回答:
在whenmatchedthen和whennotmatchedthen后面只能加insert()values或者updateset.,.,不能附加条件,而且then后面的语句不能使用其他语句.另外注意到,B的域只在using里面的查询有用吧,如果你要使用...
点击显示
其它推荐
热门其它推荐