本博客介绍一下Oracle批量新增数据和更新数据的sql写法,业务场景是这样的,往一张关联表里批量新增更新数据,然后,下面介绍一下批量新增和更新的写法:

批量新增数据

对于批量新增数据,介绍两种方法

(1)命令窗口执行的

一种需要在命令窗口执行的,Oracle数据库可以使用sqlplus或者plsql developer客户端软件

可以使用sqlplus工具登录,进入数据库

sqlplus / as sysdba

查看用户,可以用命令

show parameter db_name

plsql developer也可以使用,登录之后,选择文件(File)->新建(New)->命令窗口(Command Window)

假如要往表格t里写1000条数据,可以用如下批处理命令:

begin
for i in 1 .. 1000
loop
execute immediate
'insert into t values('|| i ||')';
end loop;
commit;
end;

ps:这个commit提交事务,放的位置也是有区别的,具体可以参考我之前的博客,Oracle体系结构学习笔记里面有涉及到

(2) SQL窗口执行的

然后介绍sql窗口执行的方法,因为命令窗口执行有时候觉得不太便利,所以可以使用sql窗口的方法,语法大致为:

insert into [表格名称](字段名称1,字段名称2,...) [查询SQL]

给个例子,sys_guid()生成uuid数据,sysdate获取当前时间,然后批量写数据,根据查询sql来

insert into t_stuff_dir_related
(seq, dir_seq, create_date, create_man, stuff_id, t_item)
select sys_guid(),
'uuidss',
sysdate,
'admin',
b.rs_id,
a.t_item
from t_itm_define a
where a.is_valid =1

批量更新数据

对于批量更新的和批量新增方法类型,同样可以用命令窗口和sql窗口两种方法

(1)命令窗口执行的

同样可以用如下批处理命令:

begin
for i in 1 .. 1000
loop
execute immediate
'${更新SQL}';
end loop;
commit;
end;

(1)SQL窗口执行的

批量更新加了where条件就可以

 update t_itm_rcv_stuff stuff
set stuff.dir_seq = '${目录SEQ}', stuff.dir_name = '${目录名称}'
where stuff.t_item in
(select a.t_item
from t_itm_define a)

oracle批量新增更新数据的更多相关文章

  1. Oracle批量新增数据最佳实践

    一.需求描述 现在的项目改造过程中,从国产的Gbase数据库改造为Oracle数据库,遇到一个问题有的业务操作需要批量新增数据. 这也是一个比较常规的操作,有很多地方确实需要一次性新增多条数据.Gba ...

  2. oracle 批量删除表数据的4种方式

      1.情景展示 情景一: 删除PRIMARY_INDEX_TEST表中,MINDEX_ID字段为空的数据 情景二: 删除VIRTUAL_CARD_TEST表中的脏数据 2.解决方案 情景一的解决方案 ...

  3. Oracle批量删除表格数据

    在开发阶段往Oracle数据库中多个表格中导入了许多测试数据,倘若一张张表执行"truncate table tablename"语句显得十分繁琐.在PL/SQL中可以用代码进行批 ...

  4. MYSQL-JDBC批量新增-更新-删除

    目录 1 概述 2 开启MYSQL服务端日志 3 深入MYSQL/JDBC批量插入 3.1 从一个例子出发 3.2 JDBC的批量插入操作 3.3 两个常被忽略的问题 3.5 误区 4 MYSQL/J ...

  5. mongodb批量update更新数据

    需要先查找出相关的记录,然后循环处理更新数据.如下案例,更新所有status=1的数据的gender值为2 db.getCollection('test').find({"status&qu ...

  6. mybatis oracle 批量新增

    假定场景:批量导入用户信息 一般批量新增使用 SELECT … INSERT INTO 和 INSERT INTO … SELECT 我们这次使用第二种 一.先建一张用户信息表模拟批量导入用户信息 c ...

  7. mybaits实现oracle批量新增数据,回填主键

    项目有需求,百度了很久,反正他们说的方法,我都没成功,我也不知道是不是我写代码的姿势不正确,没办法只能自己想法子了 我们这个项目用到了通过Mapper,通用Mapper里通过OracleProvide ...

  8. Salesforce LWC学习(三十五) 使用 REST API实现不写Apex的批量创建/更新数据

    本篇参考: https://developer.salesforce.com/docs/atlas.en-us.224.0.api_rest.meta/api_rest/resources_compo ...

  9. Oracle游标循环更新数据案例

    declare v_XTXMBH number; v_ZJZJZJRQ varchar2(40); cursor c_job is SELECT XT.XTXMBH AS XTXMBH, QJ.ZJZ ...

随机推荐

  1. logstash将redis中的队列中数据发送到influxdb数据库中

    通过elk获取到的java jvm中ygc的时间如下: 现在讲ygc字段的值,发送到influxdb中 首先安装logstash的插件 logstash-output-influxdb 安装完成后,查 ...

  2. python3偏函数

    Python的functools模块提供了很多有用的功能,其中一个就是偏函数(Partial function).要注意,这里的偏函数和数学意义上的偏函数不一样. 通过设定参数的默认值,可以降低函数调 ...

  3. 对cell每一行做标记

    通过数组进行标记 初始化列表的时候给一个值如 for (int i = 0; i < [self.tableData count]; i++)    {        [_allOrderBoo ...

  4. pushad与popad

    版权声明:本文为博主原创文章,转载请附上原文出处链接和本声明.2019-08-24,00:40:12作者By-----溺心与沉浮----博客园 PUSHAD与POPAD 这两条指令其实就是讲EAX,E ...

  5. Linux系统下安装jdk及环境配置(两种方法)

    https://blog.csdn.net/qq_42815754/article/details/82968464 这里介绍两种linux环境下jdk的安装以及环境配置方法在windows系统安装j ...

  6. 阿里云部署SSL证书

    查找中间证书 为了确保兼容到所有浏览器,我们必须在阿里云上部署中间证书,如果不部署证书,虽然安装过程可以完全也不会报错,但可能导致Android系统,Chrome 和 Firefox等浏览器无法识别. ...

  7. linux 通过wol远程开机【转】

    转自:http://yangbajing.blog.chinaunix.net/uid-10480699-id-5179860.html 今天发现个可以对linux服务器进行远程开机的软件-wakeo ...

  8. 团队——Alpha2版本发布

    这个作业属于哪个课程 课程链接 这个作业要求在哪里 作业要求的链接 团队名称 杨荣模杰和他的佶祥虎 这个作业的目标 发布并说明产品Alpha2版本 一.团队成员的学号姓名列表 学号 姓名 201731 ...

  9. NLP中的预训练语言模型(四)—— 小型化bert(DistillBert, ALBERT, TINYBERT)

    bert之类的预训练模型在NLP各项任务上取得的效果是显著的,但是因为bert的模型参数多,推断速度慢等原因,导致bert在工业界上的应用很难普及,针对预训练模型做模型压缩是促进其在工业界应用的关键, ...

  10. c# 第19节 Arraylist数组

    本节内容: 1:ArrayList是什么 2:ArrayList数组的添加 3:ArrayList的方法 4:ArrayList 的删除 4:ArrayList 的遍历与查找 1:ArrayList是 ...