Oracle存在则更新,不存在则插入应用-merge into 的小坑
语法是:MERGE INTO table_name alias1
USING (table|view|sub_query) alias2
ON (join condition)
WHEN MATCHED THEN
UPDATE table_name
SET col1 = col_val1,
col2 = col_val2
WHEN NOT MATCHED THEN
INSERT (column_list) VALUES (column_values);
但是实际应用中
MERGE INTO windreadrank T1 USING (SELECT ‘#(objectId)’ AS OBJECT_ID,’#(type)’ AS TYPE FROM dual) T2
ON(T1.OBJECT_ID=T2.OBJECT_ID and T1.TYPE=T2.TYPE)
WHEN MATCHED THEN UPDATE SET T1.READ_COUNT = T1.READ_COUNT+1
WHEN NOT MATCHED THEN INSERT VALUES(’#(objectId)’, 1,’#(type)’)
INSERT 处可以不用添加插入列表字段,不然报错, not enough values