当前位置: 代码迷 >> Oracle开发 >> Oracle 中一次执行多条语句解决方法
  详细解决方案

Oracle 中一次执行多条语句解决方法

热度:37   发布时间:2016-04-24 06:30:45.0
Oracle 中一次执行多条语句
小弟之前一直是用SQL SERVER ,最近公司项目要用ado.net 访问Oracle 数据库。遇到问题:
我想一次性在数据库插入多条数据,需求是这样的。
先通过   select fab_combo_seq.nextval from dual  触发器创建一个ID,
然后取到这个ID  写一条插入
Insert into....

以前在SQL直接就拼好一个事务的语句丢到数据库执行即可
begin tran
declare @id bigint,@err int
select @id=id from table1
insert into table2 values(@id,'aa')
set @err+=@@error
select @id=id from table1
insert into table2 values(@id,'bb')
set @err+=@@error
...此处省略N行
if(@err<>0)
begin
   commit tran
end
else
begin
   rollback tran
end

现在在Oracle该怎么实现呢?想一次性拼好语句一次执行,以减少流量。请教Oracle高手
------解决思路----------------------


declare
  m_id  int;
  m_str varchar2(30);
begin
  select fab_combo_seq.nextval into m_id from dual ;  -- 这样写
  insert into t (id) values (m_id);
  commit ;  -- 显式的提交
exception
  when others then
  rollback ; -- 显式的让这个事务回滚  
  m_str = '发生了错误';
end;
  相关解决方案