正常语句如下:MERGE INTO A
USING (SELECT * FROM table1) B
ON (A.COL1 = (B.COL1) )
WHEN MATCHED THEN
UPDATE ......
WHEN NOT MATCHED THEN
INSERT ......
可否实现这样功能:
MERGE INTO A
USING (SELECT * FROM table1) B
ON (A.COL1 = (B.COL1) )
WHEN MATCHED THEN
IF ... THEN
UPDATE ......
END IF
WHEN NOT MATCHED THEN
INSERT ......
望各位高手不吝赐教,非常感谢!100分恭候。
USING (SELECT * FROM table1) B
ON (A.COL1 = (B.COL1) )
WHEN MATCHED THEN
UPDATE ......
WHEN NOT MATCHED THEN
INSERT ......
可否实现这样功能:
MERGE INTO A
USING (SELECT * FROM table1) B
ON (A.COL1 = (B.COL1) )
WHEN MATCHED THEN
IF ... THEN
UPDATE ......
END IF
WHEN NOT MATCHED THEN
INSERT ......
望各位高手不吝赐教,非常感谢!100分恭候。
一楼的意见可以参考。
比如:
WHEN MATCHED THEN
--Do update here
......
WHEN NOT MATCHED THEN
--Do nothing请各位高手指教!多多感谢!
INSERT ( column [, column]... ) VALUES ( expr [, expr]... )
不能是其他pl/sql语句,也不能是insert ... select... 的格式,所以也不能插入空的记录集
同理merge_update_clause也是一样的
如果是WHEN NOT MATCHED THEN --Do nothing的话,用一般的update语句就可以完成了啊
--Do update here
......
WHEN NOT MATCHED THEN
NULL; --用NULL试试
楼主试一下不就知道了
INSERT ( column [, column]... ) VALUES ( expr [, expr]... )MERGE INTO test1 A
USING (SELECT * FROM test2) b
ON (A.id = B.id )
WHEN MATCHED THEN
UPDATE set a.kssj = b.kssj
WHEN NOT MATCHED THEN
insert values(b.id,2312,2321)SQL>
8 /DoneSQL>
8 /MERGE INTO test1 A
USING (SELECT * FROM test2) b
ON (A.id = B.id )
WHEN MATCHED THEN
UPDATE set a.kssj = b.kssj
WHEN NOT MATCHED THEN
null
ORA-00905: 缺少关键字
只更新就用update
既要更新又要插入,那就用merge