度量快速开发平台-专业、快速的软件定制快开平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 部件 流程 SQL
查看: 990|回复: 2
打印 上一主题 下一主题

[分享] oracle数据库用代码实现批量更新(update)、批量插入(insert)、批量删除(delete)

[复制链接]

348

主题

3572

帖子

9315

积分

论坛元老

Rank: 8Rank: 8

积分
9315
跳转到指定楼层
楼主
发表于 2020-4-16 22:18:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

有一个这样的需求,之前有一个表A,导出了表A中的一部分数据,然后对于这部分数据进行了一些修改,比如修改了运输时间、运输方式啥的,主键都是订单号。现在,需要将修改后的数据重新更新到表A中,这个时候肯定想到的是update,但是一个一个的update显然不现实,而且也完全没有必要这样去做。

实现上面的这个需求,可以首先建个表B,存储修改了表A的部分数据,然后使用游标一个个的将表B中的数据更新到表A中,实现代码大概如下:

  1. DECLARE
  2.   CURSOR csr_data IS
  3.     SELECT *
  4.       FROM b;
  5. BEGIN
  6.   FOR rec IN csr_data
  7.   LOOP
  8.     UPDATE a
  9.        SET a.start_transit_time = rec.start_transit_time, -- 这里设置的是要更改的列
  10.            a.supplier           = rec.supplier,
  11.            a.transit_name       = rec.transit_name,
  12.            a.transit_type       = rec.transit_type
  13.      WHERE a.order_no = rec.order_no; -- 这里是可以作为唯一性区分的列
  14.   END LOOP;
  15. END;
复制代码

上面的代码是实现的批量更新,后来我又想到了批量插入和批量删除,发现就没有必要用游标这样去做了,

如果要批量删除的话,就直接delete就OK了。


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复

使用道具 举报

328

主题

3738

帖子

8566

积分

作者

Rank: 7Rank: 7Rank: 7

积分
8566
QQ
沙发
发表于 2020-4-17 17:29:11 | 只看该作者
回复 支持 反对

使用道具 举报

328

主题

3738

帖子

8566

积分

作者

Rank: 7Rank: 7Rank: 7

积分
8566
QQ
板凳
发表于 2020-4-17 17:30:21 | 只看该作者
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|重庆度量科技  本站关键词:快速开发平台

GMT+8, 2024-11-16 07:18 , Processed in 0.136716 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表