oracle应用之批量新增更新数据

举报
yd_273762914 发表于 2020/12/02 23:17:08 2020/12/02
【摘要】 本博客介绍一下Oracle批量新增数据和更新数据的sql写法,业务场景是这样的,往一张关联表里批量新增更新数据,然后,下面介绍一下批量新增和更新的写法: 批量新增数据 对于批量新增数据,介绍两种方法 (1)命令窗口执行的 一种需要在命令窗口执行的,Oracle数据库可以使用sqlplus或者plsql developer客户端软件 可以使用sqlplus工具登录,...

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

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

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

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

sqlplus / as sysdba

  
 
  • 1

查看用户,可以用命令

show parameter db_name


  
 
  • 1
  • 2

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;

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

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

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

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

  
 
  • 1

给个例子,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

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

批量更新数据

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

(1)命令窗口执行的

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

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

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

(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)


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

文章来源: smilenicky.blog.csdn.net,作者:smileNicky,版权归原作者所有,如需转载,请联系作者。

原文链接:smilenicky.blog.csdn.net/article/details/90085061

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。