存储过程中如何一次性插入到多表数据

marketduan 2009-05-12 11:04:07
本人现在在做一个新增页面功能,但新增记录要插入到多个表中,这种情况如何在存储过程中实现呀,请各位高手指点。
...全文
216 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hotyxm 2009-05-12
  • 打赏
  • 举报
回复

create or replace procedure ps_test()
as
begin
--first
begin
insert into table1.....;
commit;
exception
rollback;
....
end;
begin
insert into table1.....;
commit;
exception
rollback;
....
end;
--second
begin
insert into table2.....;
commit;
exception
rollback;
....
end;

................
end;


mosaic 2009-05-12
  • 打赏
  • 举报
回复
多个表就用多个insert就行了。

有关联性的表注意一下事务的控制就行了。
marketduan 2009-05-12
  • 打赏
  • 举报
回复
就直接写多个insert就可以了吗?我是新手,不知道如何实现,以前只插入过一张表
shiqiang_03 2009-05-12
  • 打赏
  • 举报
回复
不明白楼主是什么意思?这个有什么难度或者有什么问题吗?
阿三 2009-05-12
  • 打赏
  • 举报
回复
将要输入的字段做为存储过程的输入参数
然后insert into就行了

create or replace procedure pname(a varchar2,b varchar2,c int)
as
begin
insert into t1...;
....
insert into tn...;
commit;
exception
rollback;
......
end;
inthirties 2009-05-12
  • 打赏
  • 举报
回复
[Quote=引用楼主 marketduan 的帖子:]
本人现在在做一个新增页面功能,但新增记录要插入到多个表中,这种情况如何在存储过程中实现呀,请各位高手指点。
[/Quote]

是不是只是对事务的要求。如果是,

在所有的insert完后commit,在异常时rollback就可以了




==================================================================
Inthirties关注Oracle数据库 维护 优化,安全,备份,恢复,迁移,故障处理

如果你需要帮助或想和我一起学习的请联系
联系方式QQ:370140387
QQ群: 85837884(注明:数据库)
电子邮件:dba@Inthirties.com
网站: http://www.inthirties.com
kevinpan2009 2009-05-12
  • 打赏
  • 举报
回复
1楼的要比5楼的好点
kekinxinlin 2009-05-12
  • 打赏
  • 举报
回复
有多少表要插就写几个INSERT就好了 或者写个轮询

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧