app开发者平台在数字化时代的重要性与发展趋势解析
1736
2022-11-20
oracle应用之批量新增更新数据
本博客介绍一下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)
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~