首页 > 数据库技术 > 详细

oracle 批量insert into

时间:2019-09-26 17:33:40      阅读:94      评论:0      收藏:0      [点我收藏+]

 

看了ITPUB博主的文章也才知道oracle也这种操作,记录一下。。

 

1.for 循环批量insert

create table T_TABLE_SQL
(
  ids      NUMBER,
  col_name VARCHAR2(20)
);
insert into t_table_sql values(001,trans); insert into t_table_sql values(002,json); create table t_table_sql_2 as select * from t_table_sql where 1=2; select * from t_table_sql; begin for i in (select * from t_table_sql) loop --一直都以为oracle不支持把"行"变量直接和insert操作关联起来使用,这里"行"变量这个名字是我给起的,不知道是否准确,只要大家能理解就ok. insert into t_table_sql_2 values i; --才晓得,oracle还有这种操作 commit; end loop; end; select * from t_table_sql_2; SQL> select * from t_table_sql_2; IDS COL_NAME ---------- -------------------- 1 trans 2 json

 

 

2.游标批量insert

   2.1

truncate table t_table_sql_2;

select * from t_table_sql_2;

declare
cursor cur_data is
select * from t_table_sql;
v_tab t_table_sql%rowtype;
begin
 open cur_data;
  fetch cur_data into v_tab;
  while cur_data%found loop
    insert into t_table_sql_2 values v_tab;
    fetch cur_data into v_tab; 
    end loop;
 close cur_data;
 commit;
  end;

 

   2.2

truncate table t_table_sql_2;

select * from t_table_sql_2;

declare
cursor cur_data is select * from t_table_sql;
type t_tab_rec is record(
ids t_table_sql.ids%type,
col_name t_table_sql.col_name%type);
t_tab t_tab_rec;
begin
  open cur_data;
  fetch cur_data into t_tab;
  while cur_data%found loop
    insert into t_table_sql_2 values t_tab;
    fetch cur_data into t_tab;
    end loop;
  close cur_data;
  commit;
  end;

 

 

 

 

 

 

转:http://blog.itpub.net/19602/viewspace-1015318/

oracle 批量insert into

原文:https://www.cnblogs.com/jason3361/p/11592376.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!