oracle存储过程怎样批量插入新数据

如题所述

需要生成的SQL
insert into TMP_UPSTATE_CASEKEY values('TMP0000001', 1, sysdate);

存储过程实现
create or replace procedure proc_casekey_upstate
as
casekey char(14);
begin
for i in 1..10000000 loop
casekey := 'TMP'||lpad(i,7,0); -- TMP0000001
insert into TMP_UPSTATE_CASEKEY values(casekey, 1, sysdate);
end loop;
commit;
end;

begin
proc_casekey_upstate();
end;

测试发现生成一千万条数据用了14分钟左右,性能还是可以了,如果先去掉TMP_NUM_STATUS_ID的外键估计更快。
或者:
insert into TMP_UPSTATE_CASEKEY select 'TMP'||LPAD(rownum,7,0),1,sysdate from dual connect by level <= 1000000;
温馨提示:内容为网友见解,仅供参考
无其他回答

Oracle 批量插入数据怎么做
1、登录PL\/SQL到指定数据库。2、登录后,点击左上方“纸片”状图标,然后选择“Command Window”选项,进入命令窗口。3、然后在本地电脑编写insert(即插入语句),每句以逗号分隔。如图:4、然后为文件起名字,以.sql为文件后缀,如“执行.sql”,保存到指定路径,如c盘data目录下。5、在打开的命令窗...

oracle存储过程怎样批量插入新数据
需要生成的SQL insert into TMP_UPSTATE_CASEKEY values('TMP0000001', 1, sysdate);存储过程实现 create or replace procedure proc_casekey_upstate as casekey char(14);begin for i in 1..10000000 loop casekey := 'TMP'||lpad(i,7,0); -- TMP0000001 insert into TMP_UPSTATE_CASE...

Oracle 批量插入数据怎么做
Oracle 批量插入数据的方法:1 创建表 create table emp (id number(4),name varchar2(10));2 创建序列 create sequence my_seq increment by 1 start with 1 maxvalue 1000;3 创建获取序列的函数 create or replace function get_seq return number as seq number;begin select my_seq.nextval ...

oracle存储过程提问:oracle 用存储过程将某一表里符合条件的数据查出...
先把表创建起来,然后用insert语句插入。create or replace procedure P_Insert(v_date in varchar2,v_cp varchar2) is begin INSERT INTO ora201301 SELECT * FROM bh WHERE 字段名1 BETWEEN v_date||'\/01' AND v_date||'\/31' AND 字段名2=v_cp;COMMIT;end P_Insert;...

怎么往 Access \/ Oracle 数据库里一次性插入多条数据
1.首先创建新建数据库。2.点击头部导航的“外部数据”。3.找到头部导航的“导入Access数据库”,左键点击打开。4.左侧选择要导入外部数据库的方式,点击浏览,找到外部数据库存放的路径。5.选择外部数据库要添加的表,我们在这选择“info”和“news”2张表做演示。6.点击“保存导入”后,你就会发现,...

oracle 用存储过程将某一些表里面的数据查出来之后,批量插入另一张大...
np.product_name,WHEN NOT MATCHED THEN INSERT VALUES (np.product_id, np.product_name, np.category)备注:table1:是要插入数据的目标表 table2 :是数据的来源表 针对你提出的需求是不用写存储过程的,上面的sql就完全可以实现;当然,你将上面的sql代码 放到过程体里面就OK了,你试下吧 ...

oracle 存储过程批量插入
存储过程使用游标 要插入的表最好先不要建索引

oracle数据库如何利用存储过程向表中添加数据?
实际上存储过程向表中插入数据和sql执行的区别是不大的,只不过是存储过程是用loop等循环插入,之后顺序执行sql语句,不用命令行执行。CREATE OR REPLACE PROCEDURE insert_data_4_pressure_3 is --Result1 VARCHAR2(50); VAR_num number;begin VAR_num:=1; while VAR_num< 1000000 ...

在oracle中,如何利用sql语句,往一个表中插入1000行相同的数据。在线等...
大家说的没错,只需要一个循环就行了,因为你的数据都是一样,只要控制循环,执行1000次就好了。比如有一个ttt_test的表,里面有个tid字段, 我插入1000个'1'。declare ln_count number(5);begin ln_count := 1;while ln_count <= 1000 loop insert into ttt_test values ('1');ln_count ...

oracle存储过程用fetch循环实现向一张表中插入不同数据
创建测试表 create table test(touch_id varchar2(20),party_id varchar2(20));执行过程 declare v_id int;beginv_id:=1;while v_id<=10 --这个10设置为插入的次数loopinsert into test values ('张三'||v_id,'partyid'||v_id);v_id:=v_id+1;end loop;commit;end;结果 ...

相似回答