首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

oracle中如何实现从一张表插入另张表并比较表中的数据是否一致,一致就不导入

2012-01-16 
oracle中怎么实现从一张表插入另张表并比较表中的数据是否一致,一致就不导入我现在要实现在oracle中,有一

oracle中怎么实现从一张表插入另张表并比较表中的数据是否一致,一致就不导入
我现在要实现在oracle中,有一张表(表1)中有数据(id,name),另张表(表2)和表1数据结构一样但多一个字段type(0:无变化 1:增加 2:删除 3:修改),从表一将数据导入到表2中,我现在要根据表1的数据和表2中的数据进行比较,如果存在一样的就不导入并将type改为0,name不一样并且id一样说明是修改的将type改为3,name和id都不存在说明是增加的,改为1,原先导入一个值再次导入如果数据不存在说明删除了改为2。 帮帮忙啊!要用到触发器的! 随便问问oracle中的:new.字段名到底能不取到最新插入的值。该怎么使用啊?有源码更好啊!

[解决办法]

SQL code
create or replace trigger trg_sample     on tableName after insertfor each rowbegin--:new 可以取到最新的值 insert into table1(id,name) values(:new.id,:new.name);end;
[解决办法]
用case语句不行吗?
[解决办法]
数据库什么版本? 可以考虑使用merge into
[解决办法]
merge into 表2
using 表1 
on(表2.id=表2.id)
when matched then
update 
set 表2.xxx=表1.xxx
when not matched then
insert 
values(表1.xx,表1.xxx)
[解决办法]
探讨
merge into 表2
using 表1
on(表2.id=表2.id)
when matched then
update
set 表2.xxx=表1.xxx
when not matched then
insert
values(表1.xx,表1.xxx)

[解决办法]
oracle10g中有merge合并两张表
[解决办法]
使用merge最佳,详见不久前我的一篇回帖。
http://topic.csdn.net/u/20100608/14/1b3cccd2-5ae2-4266-b52f-d841df7e7125.html

[解决办法]
merge into不好用,not matched包括修改和删除两种情况,无法赋予TYPE字段正确的值。
[解决办法]
Merge的说

热点排行