oracle++into用法,oraclemergeinto用法及例子

本文详细介绍了Oracle数据库中的MERGE语句,用于实现有则更新、无则插入的操作。通过创建并填充两个测试表,展示了如何使用MERGE语句进行数据合并。示例中展示了如何根据条件匹配数据,并执行更新或插入操作。文章还提供了一个具体的SQL语句实例,演示了如何使用MERGE更新已存在的记录,并插入新的记录。
摘要由CSDN通过智能技术生成

oraclemergeinto用法及例子以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

e13dc870d2201c972b80e580064e5d0d.png

ORACLE I中加入了MERGE

语法

MERGE [hint] INTO [schema ] table [t_alias]

USING [schema ] { table | view | subquery } [t_alias]

ON ( condition )

WHEN MATCHED THEN merge_update_clause

WHEN NOT MATCHED THEN merge_insert_clause;

创建测试数据表

create table tj_test(id number name varchar ( ) age number);

向表中插入数据

insert into tj_test values ( jan );

insert into tj_test values ( kk );

insert into tj_test values ( joe );

select * from tj_test;

查询结果如下

jan

kk

joe

创建另一新表

create table tj_test as select * from tj_test where =

插入一条数据

insert into tj_test values ( jlk );

select * from tj_test

查询结果如下

jkl 注意 这里的的NAME字段中的值是jkl

使用MERGE 实现有则更新 无则插入 sql语句如下

merge into tj_test tt

using tj_test tt

on (tt id=tt id)

when matched then

update set

tt name=tt name

tt age=tt age

when not matched then

insert values(

tt id

tt name

tt age)

查询tj_test 表(对比原来表中的数据 更新了ID= ROW中字段NAME 同时多出两条新数据)

select * from tj_test

改变行数据如下

jan 这里的原有jkl值被更新

joe 原来表中没有的插入

kk 原来表中没有的插入

如果存在就更新 不存在就插入

i已经支持了 是Merge 但是只支持select子查询

如果是单条数据记录 可以写作select …… from dual的子查询

语法为

MERGE INTO table

USING data_source

ON (condition)

WHEN MATCHED THEN update_clause

WHEN NOT MATCHED THEN insert_clause;

如:

MERGE INTO course c

USING (SELECT course_name period

course_hours

FROM course_updates) cu

ON (urse_name = urse_name

AND c period = cu period)

WHEN MATCHED THEN

UPDATE

SET urse_hours = urse_hours

WHEN NOT MATCHED THEN

INSERT (urse_name c period

urse_hours)

VALUES (urse_name cu period lishixinzhi/Article/program/Oracle/201311/18285

分页:123

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值