向各位求一存储过程,谢谢

wchunge 2006-11-07 02:39:52
a 数据库 a1,a2表 c 数据库 c 表, 两个数据库在不同的机子,但机子在同一局域网

假设取:select a1_id,a1_name,a2_modify_date from a1,a2 where a1_id=a2_id

c表有同样的字段

需求:

把a1_id,a1_name,a2_modify_date取出数据保存到 c 表中

要求:

如果 a1_id 存在 c 表,则判断 a2_modify_date 如果大于或等于当前日期则update;
如果 a1_id 不存在 c 表,则insert数据.
...全文
189 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wchunge 2006-11-08
  • 打赏
  • 举报
回复
但数据库是8i的。不支持 MERGE 吧
山林73 2006-11-07
  • 打赏
  • 举报
回复
跨数据库可以建立数据库连接
create database link
访问时用c@dbc的方式访问
山林73 2006-11-07
  • 打赏
  • 举报
回复
MERGE INTO c
USING (
select a1.id,a1.name,a2.modify_date from a1
inner join a2 on a1.id=a2.id
left join c c2 on c2.id=a1.id
where a2.modify_date >= c2.modify_date or isnull( c2.modify_date)
) s
ON (c.id = s.id)
WHEN MATCHED THEN UPDATE SET
c.name =s.name,
c.modify_date = s.modify_date
WHEN NOT MATCHED THEN INSERT (c.id, c.name, c.modify_date )
VALUES (s.id, s.name, s.modify_date );


这也可以用两条语句实现

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧