oracle merge into on 条件 5C

On条件可以多个吗?可以的话怎么写 我三个条件发现判断又问题

2个回答

-- Oracle数据库
-- SQL说明 : 将source_tb中的数据merge到target_tb表中
-- source_tb中存在同target_tb主键相同的记录时,更新target_tb表
-- source_tb不存在同target_tb主键相同的记录时,插入target_tb表
-- SQL正文 :
merge into t......
答案就在这里:Oracle数据库merge into
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?

merge into ttt1 using ttt2 on(ttt1.dept=ttt2.dept and ttt1.id in(1,2,3)) when matched then update set ttt1.deptname=ttt2.deptname
多个条件之间用and就可以了

w172087242
little_how 回复韧心: 这个就看你逻辑怎么控制的
3 年多之前 回复
mdfxyy1234
韧心 回复little_how: 刚也测试了下 发现 没问题 是否我手动控制提交的问题 我是在merge语句 手动10000条提交一次 造成很多数据被更新看?
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
oracle merge into
merge into table a using rn(SELECT * from table where type= '1' ) brnon rn(a.id = b.id)rnwhen matched then rn UPDATE SET rn a.num= a.num+1rnwhen not matched then rn INSERT INTO (a.id,a.num) rn VALUES ('2','1')rnrn报错 :[Err] ORA-00926: missing VALUES keywordrnoracle 数据库版本是 10.2.0.5.0rn我的客户端用的 navicat premium
oracle merge
merge 详解 及实例 优点:  — 避免了分开更新  — 提高性能并易于使用  — 在数据仓库应用中十分有用  — 使用merge比传统的先判断再选择插入或更新快很多
存储过程中merge into加条件
create or replace procedure test_jay_01rnasrn sql_txt varchar2(1000);rn sql_txt_columns varchar2(1000);rn sql_txt_columns_update varchar2(1000);rn sql_txt_columns_insert varchar2(1000);rnrnbeginrn sql_txt_columns :='STUDENT_NEW_JAY.name,STUDENT_NEW_JAY.age,STUDENT_NEW_JAY.class';rn rn sql_txt_columns_update := 'STUDENT_NEW_JAY.age=STUDENT_JAY.age,STUDENT_NEW_JAY.class=STUDENT_JAY.class';rn rn sql_txt_columns_insert := 'STUDENT_JAY.name,STUDENT_JAY.age,STUDENT_JAY.class';rnrn sql_txt := 'merge into STUDENT_NEW_JAY using STUDENT_JAY on(STUDENT_NEW_JAY.name=STUDENT_JAY.name)rn when matched then update set ' || sql_txt_columns_update|| ' when not matched then insertrn (' || sql_txt_columns ||') values(' || sql_txt_columns_insert || ') [color=#FF0000]where STUDENT_JAY.name=张三[/color]'; rn execute immediate sql_txt;rn commit;rn exceptionrn when others thenrn rollback;rnend;rnrnrn我使用merge into插入数据时想加入限制条件,这里比方说name为张三的记录,这个条件应该怎么加呢,我上面的写法是不对的。rnrnrnrnrn
oracle中merge的神奇
merge into tb1 a using (select b.id, c.price from tb2 b left join tb3 c where b.id = c.id) d --这里using(可以子查询) on a.id = d.id when matched then     udpdate a.price = b.price where d.product_name l
oracle使用 merge
oracle使用 merge 更新或插入数据(总结@新
ORACLE MERGE INTO USING ON语句后ON多条件问题?
各位,不知道有没有同志们使用过MERGE INTO USING ON 来对数据做插入和更新操作,我在对大批次数据操作的时候,发现有些数据被莫名更新了,是不是我对语句的理解和用法有误,我在ON后条件的时候,添加了多个条件(3个),并且使用 AND做了关联,即 ON(条件1 AND条件2 AND条件3),我发现很多数据被更新了,不是同时符合以上三个条件的。
【Oracle】merge into使用方法
/*Merge into 详细介绍 MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句。 通过MERGE语句,根据一张表或子查询的连接条件对另外一张表进行查询, 连接条件匹配上的进行UPDATE,无法匹配的执行INSERT。 这个语法仅需要一次全表扫描就完成了全部工作,执行效率要高于INSERT+UPDATE。 */ /*语法: MERGE [INTO
Oracle之merge误区讨论
---merge五大误区 ---构造数据,请注意这里多插入一条A记录,就产生了ORA-30926错误 DROP TABLE T1; CREATE TABLE T1 (NAME VARCHAR2(20),MONEY NUMBER); INSERT INTO T1 VALUES ('A',10); INSERT INTO T1 VALUES ('B',20); DROP TABLE T
Oracle merge语句
merge into tbl_rest_realreststates t1rnusing view_v8_restcomput t2rnon (t1.queue_id = t2.queue_id)rnwhen matched thenrn update set rn t1.Sigincount=t2.Sigincount,rn t1.realbusy=t2.RealBusy,rn t1.prebusy=t2.PreBusy,rn t1.realbusyin04a06a100=t2.RealBusyIn04A06A100rnwhen not matched thenrn insert values(t2.queue_id,t2.Sigincount,t2.RealBusy,t2.PreBusy,t2.RealBusyIn04A06A100)rnrnrnrn我在网上找的一段用merge的,我修改了一下,不能编译通过,错在哪里,谢谢大家
oracle中merge的简单使用
merge在oracle用以从另一张表中取数据插入到一张表中,如果两张表中记录符合某些条件,则替换,如果不符合则插入。下面的例子是把mergetest中记录更新到newmergetest,如果两张表的id相同,则更新newmergetest,否则插入: 首先建两张测试表: create table mergetest(id number primary key,name varchar(20...
关于oracle的merge语法
[size=16px]Mysql的语句如下:[/size]rn[code=sql]INSERT INTO log(id,startid) VALUES(14,14) ON DUPLICATE KEY UPDATE startid = values(startid)[/code]rnrn[size=16px]为了在oracle中达到同样的效果,oracle中语句如下:[/size]rnrn[code=sql]merge into log rnusing (select 14 id, 14 startId from dual) t rnon (t.id=log.id) rnwhen not matched then rninsert (id, startId) values (t.id,t.startId) rnwhen matched then rnupdate set log.startId=t.startId rn[/code]rnrn[size=16px]求问oracle语句哪里错了[/size]rn
Oracle的函数merge的用法
带你了解oracle的merge用法,一起了解oracle的merge用法!
oracle merge 用法详解
oracle merge 用法详解
Oracle merge的多组匹配条件该怎么写?
Oracle merge的多组匹配条件该怎么写?rnrn比如我是想要这种多组条件:rn[code="sql"]rnmerge into whiskytest xrnusing (select t.*, t.rowid from whiskytest t) trnon (x.remark = t.remark and x.updater = t.updater) or (x.remark is null and x.updater = t.updater) or (x.remark is null and x.updater is null)rnwhen matched thenrn update set x.seq=t.seq;rn[/code]rn当然这样写是错误的,只是想表达on条件那里的多组条件组合要怎么写!!rnrn但是又不等同于这种on写法:rn[code="sql"]rnmerge into whiskytest xrnusing (select t.*, t.rowid from whiskytest t) trnon ((x.remark = t.remark or x.remark is null) and (x.updater = t.updater or x.updater is null))rnwhen matched thenrn update set x.seq = t.seq;rnrn[/code]rn请指教~~~~~~
oracle 的 merge 问题
WHEN MATCHED THENrn UPDATErn SET p.product = b.product rnrnwhen not ~~~~~rninsertrn(******)values(*****)rnrnrn原本是没问题,但数据量大了后,我想看哪条纪录在该执行中被修改或添加了就没办法了,于是加了个字段,做了些改动:rnWHEN MATCHED THENrn UPDATErn SET p.product = b.product ,rn p.uptime = sysdaternrnwhen not ~~~~~rninsertrn(****** uptime)values(***** sysdate)rnrn这样改了以后就报错了rnunable to get a stable set of rows in the source tablesrnrn求解rnrnrnrn
oracle里的merge方法
[code=SQL]rnmerge into tab1 arnusing tab2 brnon (a.aid=b.aid and a.bid=b.bid)rnwhen not matched thenrn insert values (b.aid,b.bid); rn[/code]rnrn可以帮我解释下tab2表是做什么的吗?tab2表可以不可以是在另一个页面传过来的值呢,而不是表里的
Oracle之merge经典案例
--MERGE的巧妙运用 /*  案例1: 需求为:将如下t记录的ID=1的NAME改为ID=2的NAME的值,把ID=2的NAME改为ID=1的NAME的值。 */ drop table t; create table t (id number,name varchar2(20)); insert into t values (1,'a'); insert into t va
Oracle Merge into同步更新数据
merge into T_DEV_SENDMAIL a using t_dev_email b on (a.code=b.code) when matched then update set a.email=b.email  
Oracle 的merge效率问题
把一个十万记录的表内容merge into到另外一张表里,处理十分慢,超过10分钟,而仅仅是插入的话只需要1分钟不到,为什么呢,怎么可以提高merge into的效率,使用merge into上需要注意什么呢?
Oracle中merge into的使用
Oracle中merge into的使用 很有用的哦 学习一下
oracle sqlldr;;merge;分组排序;条件赋值;表连接。简单示例
实用基础SQL语句;oracle sqlldr;SQL基础语句;merge;分组排序;条件赋值;表连接。简单示例,Oracle数据库文档数据导入
oracle中的merge命令
merge into t_bonus T using (select employee_id,salary from s_employee) S -- using 指定数据源,数据源可以来自一个查询,表或者视图 on (T.employee_id = S.employee_id) -- 指定一个条件,将根据此条件决定是执行update还是insert when matched then updat...
Oracle 批量修改数据-Merge
基本概念: MERGE语句是SQL语句的一种。在SQL Server、Oracle数据库中可用,MySQL、PostgreSQL中不可用。MERGE是Oracle9i新增的语法,用来合并UPDATE和INSERT语句。通过MERGE语句,根据一张表(原数据表,source table)或子查询的连接条件对另外一张(目标表,target table)表进行查询,连接条件匹配上的进行UPDATE,...
oracle merge使用方法
oracle merge语法 oracle merge语法merge into biz_module_apccode ousing (select * from temp_fa) non (o.biz_module_id=142 and o.apccode_id=n.apccode_id)when matched thenupdate set o.order_by=n.order_by/...
oracle中的merge使用
merge语句同时执行插入【insert】和更新语句【update】 MERGE INTO copy_emp c USING employees e ON (c.employee_id = e.employee_id) WHEN MATCHED THEN UPDATE SET c.first_name = e.first_name, c.last_name =
Oracle Merge into语法
请问下各位大神rnMerge into T 在 WHEN MATCHED THEN 后面除了可以 update T表 能否有其他的语句rn例如将记录插入另外一个log表rn
Oracle merge into用法
关于Oracle中merge into的用法,比较实用哦
Oracle使用Merge into 注意事项
--一条数据时,通过构造dual来进行判断 MERGE INTO sc_wlhz T1 USING (SELECT 'gjsAAAAAsx43xn37' AS fsupplierid,'JAH07007' AS fmateielcode FROM dual) T2 ON ( T1.fsupplierid=T2.fsupplierid and T1.fmateielcode=T2.fm
oracle之merge的深入介绍
文章概要: 1.merge的详细介绍 2.merge的语法结构 3.与merge相关的例题
oracle merge into的使用
oracle merge into的使用,开发必备的。
Oracle Merge语句效率问题
大家一定都会遇到过数据库操作中的 update, 也一定会考虑过主键重复的问题, 简单的解决方法就是先 select , 然后根据返回值判断是 insert 还是 update. 因为公司要求这个用一个语句执行, 所以调查了 oracle 自身的 merge 语句, 针对效率就调查的结果如下: 操作次数为 1 时 select 花费时间 47 ...
ORACLE快速合并更新数据——MERGE INTO
传统update写法 update b_pharmacy_sku vs set vs.supply_price = (select t.supply_price from b_pharmacy_sku_bak t where t.id = vs.id) where  exists(select 1 from b_pharmacy_sku_bak t where t.id = vs.id);
Oracle 9i 中merge的问题
求问:9i中只想更新不想插入怎么写?rnMERGE INTO user prnUSING TEMP tprnON (p.TYPE = tp.TYPE)rnWHEN MATCHED THENrn UPDATE SET p.SYS_NAME= tp.SYS_NAMErnWHEN NOT MATCHED THEN rnINSERT ()rnVALUES ()rn这样写肯定不对rn去掉WHEN NOT MATCHED THEN 也不对,rn哪位大哥有好的办法?rn这个问题起源:我想插入数据,如果rn1、TYPE 不重复则插入rn2、TYPE 重复的 还要看 另一个字段 “op” 如果op有值 则不进行操作 rn3、如果op没值则进行更新rnrn如果是10g就简单了直接 where 就行了 可怜的是客户的是9i 请高手赐教
Oracle关于Merge into 语句的问题
使用Merge Into语句时,可否在When not matched then 后面添加上多于一行的语句?rn就是除了不匹配时插入新数据那条insert语句之外的处理语句。rnrn如果可以,它的格式是怎样的吖?
oracle 中 merge into用法问题
表结构:fsreqordrn标识符 数据类型 主键rnfs_procod varchar2(2) PKrnfs_opyear varchar2(4) PKrnfs_orderno number(10)rnrn想实现根据主键,若主键存在则fs_orderno增加1,若主键不存在则新增记录,fs_orderno为1。rn语句如下:rnrnmerge into fsreqord rn using (select '23' procod, '2015' opyear from dual) f rn on(fsreqord.fs_procod = f.procod and fsreqord.fs_opyear = f.opyear) rn when matched then rn update set fs_orderno=fs_orderno+1; rn when not matched then rn insert (fs_procod,fs_opyear,fs_orderno) values (f.procod,f.opyear,1);rnrn不加when not 前面的语句,测试通过,可以+1,但是加了when not这句就不行了,想问下错在哪里了。
Oracle merge into 的用法详解【整理】
在进行SQL语句编写时,我们经常会遇到大量的同时进行Insert/Update的语句 , 也就是说当存在记录时,就更新(Update),不存在数据时,就插入(Insert)。 语法: MERGE INTO [your table-name] [rename your table here] USING ( [write your query here] )[rename your query-
oracle 9i 中 merge into 的问题
两个表结构如下:rnrnSQL> desc employeern 名称 是否为空? 类型rn ----------------------------------------- -------- ----------------------------rnrn ID NUMBER(4)rn NAME VARCHAR2(8)rn DEP_ID NUMBER(4)rn SALARY NUMBER(6)rnrnSQL> desc employee1rn 名称 是否为空? 类型rn ----------------------------------------- -------- ----------------------------rnrn ID NUMBER(4)rn NAME VARCHAR2(8)rnrn执行一个 merge 语句老是报错:rnrnrn 1 merge into employee1 e1rn 2 using employee e2rn 3 on (e1.id = e2.id)rn 4 when matched thenrn 5 update setrn 6 name = e1.namern 7 when not matched thenrn 8* insert (id, name) values(e2.id, e2.name)rnSQL> /rn insert (id, name) values(e2.id, e2.name)rn *rnERROR 位于第 8 行:rnORA-00957: 列名重复rnrn把 insert 中的字段列表去掉就执行成功rnrn怎么回事?rn
oracle merge into 的用法详解+实例
作用:merge into 解决用B表跟新A表数据,如果A表中没有,则把B表的数据插入A表; 语法: MERGE INTO [your table-name] [rename your table here] USING ( [write your query here] )[rename your query-sql and using just like a table] ON (...
oracle merge 更新或插入数据
主要功能 提供有条件地更新和插入数据到数据库表中 如果该行存在,执行一个UPDATE操作,如果是一个新行,执行INSERT操作 — 避免了分开更新 — 提高性能并易于使用 — 在数据仓库应用中十分有用 MERGE语句的语法如下: MERGE [hint] INTO [schema .] table [t_alias] USING [schema .] { table
小鸟请教Oracle merge 的用法。
RT:rn insert into tblbreakermeasure (id) (select t.id from tblbreaker t)rnrn 从 tblbreaker表 找出所有的Id 插入到 tblbreakermeasure 表中。rnrn 有则更新,没有则插入。小鸟请教大牛的帮助。
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法