字典翻译 问答 其它 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_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里面的查询有用吧,如果你要使用...
点击显示
其它推荐
热门其它推荐
  • 其它