Oracle合并使用的示例
1)主要功能
提供条件更新并将数据插入数据库表中
如果行存在,执行更新操作,如果是新行,则执行插入操作。
-避免单独更新
-提高性能并易于使用
-它在数据仓库应用中非常有用。
2)合并语句的语法如下所示:
复制代码代码如下所示:
{提示}到{合并模式表{ } { t_alias使用模式。
{表视图查询} | | { }对t_alias(条件)
WHEN MATCHED THEN merge_update_clause
当没有匹配然后merge_insert_clause;
3)例
复制代码代码如下所示:
合并到表目标
使用(选择111111111 'store_no,
2014-01'target_ym,
1'target_d01,
2'target_d02,
2'target_d03,
2'target_d04,
2'target_d05,
2'target_d06,
2'target_d07,
2'target_d08,
2'target_d09,
2'target_d10,
2'target_d11,
2'target_d12,
2'target_d13,
2'target_d14,
2'target_d15,
2'target_d16,
2'target_d17,
2'target_d18,
2'target_d19,
2'target_d20,
2'target_d21,
2'target_d22,
2'target_d23,
2'target_d24,
2'target_d25,
2'target_d26,
2'target_d27,
2'target_d28,
2'target_d29,
2'target_d30,
2'target_d31,
1 user_id
从双温)
在(target.store_no = temp.store_no和target.target_ym =温度。target_ym)
当匹配时
更新
集target.target_d01 = temp.target_d01,
target.target_d02 = temp.target_d02,
target.target_d03 = temp.target_d03,
target.target_d04 = temp.target_d04,
target.target_d05 = temp.target_d05,
target.target_d06 = temp.target_d06,
target.target_d07 = temp.target_d07,
target.target_d08 = temp.target_d08,
target.target_d09 = temp.target_d09,
target.target_d10 = temp.target_d10,
target.target_d11 = temp.target_d11,
target.target_d12 = temp.target_d12,
target.target_d13 = temp.target_d13,
target.target_d14 = temp.target_d14,
target.target_d15 = temp.target_d15,
target.target_d16 = temp.target_d16,
target.target_d17 = temp.target_d17,
target.target_d18 = temp.target_d18,
target.target_d19 = temp.target_d19,
target.target_d20 = temp.target_d20,
target.target_d21 = temp.target_d21,
target.target_d22 = temp.target_d22,
target.target_d23 = temp.target_d23,
target.target_d24 = temp.target_d24,
target.target_d25 = temp.target_d25,
target.target_d26 = temp.target_d26,
target.target_d27 = temp.target_d27,
target.target_d28 = temp.target_d28,
target.target_d29 = temp.target_d29,
target.target_d30 = temp.target_d30,
target.target_d31 = temp.target_d31,
target.opt_counter = target.opt_counter + 1,
target.update_by = temp.user_id,
target.update_date = SYSDATE
当不匹配时
插入
价值观
(SEQ.NEXTVAL,
temp.store_no,
temp.target_ym,
temp.target_d01,
temp.target_d02,
temp.target_d03,
temp.target_d04,
temp.target_d05,
temp.target_d06,
temp.target_d07,
temp.target_d08,
temp.target_d09,
temp.target_d10,
temp.target_d11,
temp.target_d12,
temp.target_d13,
temp.target_d14,
temp.target_d15,
temp.target_d16,
temp.target_d17,
temp.target_d18,
temp.target_d19,
temp.target_d20,
temp.target_d21,
temp.target_d22,
temp.target_d23,
temp.target_d24,
temp.target_d25,
temp.target_d26,
temp.target_d27,
TEMP.TARGET_D28,
temp.target_d29,
temp.target_d30,
temp.target_d31,
无效的,
违约,
违约,
无效的,
temp.user_id,
违约,
无效的,
null);
小小的帮助:
看到数据库表这么多字段都不讨厌,抄、写都麻烦,容易出错,可以如下:
1。首先查询表的所有字段
复制代码代码如下所示:
选择column_id,
column_name,
data_type,
data_length,
data_precision,
data_scale,
可空,
data_default
从user_tab_columns
在table_name = }}
为了column_id
2、复制名称到Excel的功能和使用连接表
很多时候你可以用它,从网络中整理出来。