oracle数据库新增数据⽂件,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 = '${⽬录名称}'
批量更新sql语句where stuff.t_item in
(select a.t_item
from t_itm_define a)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论