在mysql中有这样的语法
REPLACE INTO subscribers
VALUES (2, 'John Brown', '[email protected]');
第一个字段是主键。
实现了这样的功能,如果第一个参数的值,在subscribers表中不存在,就添加记录;存在就替换记录。oracle有没有类似的语法?
REPLACE INTO subscribers
VALUES (2, 'John Brown', '[email protected]');
第一个字段是主键。
实现了这样的功能,如果第一个参数的值,在subscribers表中不存在,就添加记录;存在就替换记录。oracle有没有类似的语法?
解决方案 »
- oracle中sql的查询排序区是不是PGA??
- DEADLOCK DETECTED 错误
- 想做一个这样的统计
- windos2000server下安装oracle9i出现的网站冲突问题??哪位大侠遇到过帮忙看看!!!
- Oracle数据库联机日志文件丢失处理方法
- SQL*Plus中如何执行多个*.sql脚本文件 ---Oracle初学者问题
- 高分请救一个SQL问题?
- Oracle
- 为什么oracle表里不能共存两个long
- 实在不好意思,请问如何在db2中将20020830字符串转换为日期型,或求'20020830'与'20020810'之间的日期天数差
- 如何测试存储过程呢?
- 急!关于查询优化问题,在线等!
update tablename set(id,name,addr)=(1,2,3) where id=1 and name =2 and addr=3;
(SELECT KBS.NUFUS_MUHTARLIK.MERNIS_NO FROM KBS.NUFUS_MUHTARLIK WHERE MERNIS_NO='46603404838')
BEGIN
UPDATE KBS.NUFUS_MUHTARLIK SET CILT='028-01',SAYFA='25',KUTUK='6'
END ELSE BEGIN
INSERT INTO KBS.NUFUS_MUHTARLIK (MERNIS_NO,CILT,SAYFA,KUTUK) VALUES ('46603404838','028-01','25','6') END;
USING (SELECT course_name, period,
course_hours
FROM course_updates) cu
ON (c.course_name = cu.course_name
AND c.period = cu.period)
WHEN MATCHED THEN
UPDATE
SET c.course_hours = cu.course_hours
WHEN NOT MATCHED THEN
INSERT (c.course_name, c.period,
c.course_hours)
VALUES (cu.course_name, cu.period,
cu.course_hours);
oracle 的merge 操作 需要有 源数据(table, view,query) 和目标数据表。当然也可以士同一张表,这样 merge 的功能就和楼主说的replace 一样了。
而使用merge,要先将数据放到一个表中,然后再执行merge。不知道我的理解对不对,
如果是这样,麻烦了。
我是希望插入或者更新的操作用一条sql完成。