当前位置:首页 » 存储配置 » 存储过程优化批量插入

存储过程优化批量插入

发布时间: 2024-03-19 15:20:14

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

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

存储过程实现
create or replace procere 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 al connect by level <= 1000000;

❷ oracle存储过程提问:oracle 用存储过程将某一表里符合条件的数据查出来之后,批量插入另一张表中

先把表创建起来,然后用insert语句插入。
create or replace procere 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;

❸ sqlserver 存储过程大批量数据插入

可使用Merge Into 语句完成操作。
具体用法参考文章:http://www.cnblogs.com/biwork/p/3370335.html

❹ SQL Server中 用存储过程 怎样 在同一时间向一张表插入多条数据

如果必须裂裂同时插的话,建议你使用一个临时表。 在存储过程中先将肆蔽闭数据整理的临时表中。假设临时表名叫temp,目标表名叫 result。并高
最后执行 insert into result select * from temp;
就可以讲 temp表中的数据 一次入到 目标表中了。

❺ oracle 用存储过程将某一些表里面的数据查出来之后,批量插入另一张大表中,并判断,若有些已经存在的数据

MERGE INTO table1 p
USING table2 np
ON (p.proct_id = np.proct_id)
WHEN MATCHED THEN
UPDATE
SET p.proct_name = np.proct_name,

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

❻ 如何用SQL语句将数据批量插入数据库

这种情况使用xml来进行批量插入.
1.asp.net页面上抓取数据,转换成xml字符串
2.将这个字符串作为参数传给存储过程
3.存储过程里,将这个xml读取成临时表
4.整个临时表插入到目标数据表中,这个过程可以使用sql
server的事务;其实在这里用不用事务问题都不大了,因为存储过程出错,数据插不进去的,还会抛出异常到asp.net后台,让后台进行处理异常.
您用游标或asp.net代码来循环,速度会比较慢的.

❼ mysql存储过程怎样批量插入数据

一下代码运行通过:

delimiter$$;
createprocerelucia_proc16(countint)
begin
DECLAREname_procVARCHAR(20)CHARACTERSETutf8;
DECLAREsex_procVARCHAR(4)CHARACTERSETutf8;
DECLAREage_procINT(10);
DECLAREclass_procVARCHAR(20)CHARACTERSETutf8;
DECLAREAddr_procVARCHAR(50)CHARACTERSETutf8;
DECLAREiINT;
seti=1;
setsex_proc='女';
setage_proc=20;
setclass_proc='山治班';
setAddr_proc='北京市朝阳区';
whilei<countdo
setname_proc=CONCAT('露西亚',i);
insertintostudents(Name,Sex,age,class,Addr)values(name_proc,sex_proc,age_proc,class_proc,Addr_proc);
seti=i+1;
endwhile;
end
$$;
delimiter;

代码功能:

传入一个行数,控制插入多少条数据

运行效果:

❽ 怎么写存储过程,向数据库中批量插入数据

  1. 用循环语句生成字段值insert

  2. SQL 如下:

createprocereInsertTest

as

begin

declare@iint

declare@svarchar(20)

set@i=1

while@i<=100

begin

select@s=cast(@iASvarchar(20))

insertintotest(A,B,C,D)VALUES('a'+@s,'b'+@s,'ccccc','ddddd')

SET@i=@i+1

end

end

❾ 存储过程批量插入数据问题

create proc pc_Text
@number_star int,
@number_end int
as
declare @int int
set @int=@number_end-@number_star+1
while(@int>0)
begin
select @int= count(1) from Text where aNumber1=@number_star
if(@int=1) --如果存在变化就不插入
begin
set @number_star=@number_star+1
set @int=@number_end-@number_star+1

end
else
begin
insert into Text value(@number_star ,...)
set @number_star=@number_star+1
set @int=@number_end-@number_star+1

end
end

热点内容
紫光算法岗 发布:2024-11-27 23:36:14 浏览:335
文件加密解密工具 发布:2024-11-27 23:35:36 浏览:711
djangoajax文件上传 发布:2024-11-27 23:29:35 浏览:306
向日葵忘记访问密码 发布:2024-11-27 23:29:33 浏览:498
为什么服务器不增加计数器 发布:2024-11-27 23:17:06 浏览:560
无法安装sql2005 发布:2024-11-27 22:59:29 浏览:319
数据库是哪个文件 发布:2024-11-27 22:58:32 浏览:401
直连机房服务器怎么配置ip 发布:2024-11-27 22:56:21 浏览:904
阿里云服务器发布项目 发布:2024-11-27 22:55:20 浏览:141
百度云7z解压 发布:2024-11-27 22:41:36 浏览:712