oracle批量新增更新数据
2019-05-12 00:11
190 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u014427391/article/details/90085061
本博客介绍一下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批量新增更新数据
- 批量更新数据Oracle
- mybatis 批量新增并更新已有数据
- ORACLE 和SQLSERVER 两表之间批量更新数据对比
- oracle merge 语句,无数据新增,有数据更新
- Mysql 在 mybatis 环境下 批量新增 并 将已存在的数据更新
- sqlserver移植为Oracle笔记(更新,新增字段名;批量新增记录;日期查询;截取字串函数)
- Mybatis+Oracle进行数据的批量插入和更新
- Oracle两张表关联批量更新其中一张表的数据
- 一个简单的批量更新oracle 数据库中 最近的服务商名称的数据
- 利用JDBC中处理批量更新oracle数据
- 使用mybatis 对 oracle数据批量插入、更新
- oracle表数据批量更新或插入
- PreparedStatement 批量更新,插入数据到Oracle mysql
- 通过Loadrunner读取excel表数据并批量更新到Oracle中
- .net中利用oracle产品自带的数据访问组件(Oracle.DataAccess.dll)提升批量更新操作的执行效率
- PreparedStatement 批量更新,插入数据到Oracle
- oracle 批量更新之将A表数据批量更新至B表
- Oracle中采用存储过程的方式批量更新数据
- Oracle数据的批量更新