當前位置:首頁 » 存儲配置 » 批量插入數據存儲過程

批量插入數據存儲過程

發布時間: 2022-04-27 20:43:26

㈠ 如何用sql語句將數據批量插入資料庫

這種情況使用xml來進行批量插入.
1.asp.net頁面上抓取數據,轉換成xml字元串
2.將這個字元串作為參數傳給存儲過程
3.存儲過程里,將這個xml讀取成臨時表
4.整個臨時表插入到目標數據表中,這個過程可以使用sql
server的事務;其實在這里用不用事務問題都不大了,因為存儲過程出錯,數據插不進去的,還會拋出異常到asp.net後台,讓後台進行處理異常.
您用游標或asp.net代碼來循環,速度會比較慢的.

㈡ 如何向mysql中批量插入數據

drop procere if exists s_card;
delimiter $$
CREATE PROCEDURE s_card()
BEGIN
DECLARE j INT(11);
loop1: WHILE j<=1000 DO
insert INTO `tablename`(xxxxxx) values (xxx);
SET j=j+1;
END WHILE loop1;
END$$
delimiter ;
把上面存儲過程運行一下,輸入 call s_card()可以循環插入1000條數據
如果要指定輸入條數可以把數字從外界傳入

㈢ 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;

代碼功能:

傳入一個行數,控制插入多少條數據

運行效果:

㈣ 如何實現資料庫的批量插入與更新~~

幹嘛弄這么麻煩啊?數據量很大嗎?要是很大的話才需要你說的那種方式做壓縮.然後,你需要對得到的dataset根據其欄位名組合成sql
更新到本地資料庫.但是這個台麻煩了.
簡單的辦法是.在本地資料庫B上建立對遠程資料庫A的DBlink.然後對遠程資料庫上的表在本地建立別名.
那麼你訪問別名就和訪問本地表一樣簡單.只要你會sql
搞個資料庫的批量本地插入還是很簡單的.因為不知道你是什麼資料庫.因此你可以插下對應資料庫DBLINk的資料.不過這種方式就是沒法對數據壓縮.可能會佔用點帶寬

㈤ 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 批量插入數據怎麼做

一個例子你看看

createorreplaceprocerep_testis
v_dayvarchar2(20);
nextdayvarchar2(20);
cur_valuenumber;
yes_valuenumber;
thismonth_totalvaluenumber;
lastmonth_totalvaluenumber;
inumber;
tempdayvarchar2(20);
day_countinteger;
begin
executeimmediate'truncatetableDM_KPID_IW_AREA';
v_day:='20070101';
--lastmonth_totalvalue:=0;
forkin0..11loop
tempday:=to_char(add_months(to_date(v_day,
'yyyymmdd'),
k),
'yyyymmdd');
yes_value:=0;
thismonth_totalvalue:=0;

--這里好像有一個比較方便的函數吧,記不清了
day_count:=to_char(last_day(to_date(tempday,'yyyymmdd')),'dd');

foriin0..day_count-1loop
nextday:=to_char(to_date(tempday,'yyyymmdd')+i,
'yyyymmdd');
cur_value:=trunc(dbms_random.value(1,100),0);
thismonth_totalvalue:=thismonth_totalvalue+cur_value;

begin
selectt.thismonth_totalvalue
intolastmonth_totalvalue
fromdm_kpid_iw_areat
wheret.day_id=
--考慮如3月30日之類這樣的情況,前一月沒有對應的日子的情況,
--如果此時上月值為0的話,則應該為:
--to_char(add_months(to_date(nextday,'yyyymmdd'),-1),
--'yyyymm')||substr(nextday,7,2);
to_char(add_months(to_date(nextday,'yyyymmdd'),-1),
'yyyymmdd');
exception
whenno_data_foundthen
lastmonth_totalvalue:=0;
end;

insertintodm_kpid_iw_area
(day_id,
cur_value,
yes_value,
thismonth_totalvalue,
lastmonth_totalvalue)
values
(nextday,
cur_value,
yes_value,
thismonth_totalvalue,
lastmonth_totalvalue);
yes_value:=cur_value;
commit;
endloop;
endloop;
end;

㈦ 怎麼寫存儲過程,向資料庫中批量插入數據

  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

㈨ 求批量插入存儲過程 首先是多表查出 多行數據 然後批量將查詢出來的信息插入到 有主子關系的兩張表

這個有點困難,可以說是非常困難,因為有主子關系存在,而前面的多表你又沒有說明其關系,不過大概可以給你個思路
insert into tablemain select columnlist from queryA --select 可以是一個查詢,表關聯查詢也行,保證columnlist和主表的列一致
insert into tabledetail select columnlist from queryB

熱點內容
安卓如何把手機簡訊導入電腦 發布:2024-11-18 11:32:44 瀏覽:297
如何天選2查看電腦配置 發布:2024-11-18 11:32:36 瀏覽:421
phpinclude目錄 發布:2024-11-18 11:29:38 瀏覽:722
西門子hmi屏反編譯軟體 發布:2024-11-18 11:29:36 瀏覽:763
安卓機如何看微信撤回消息 發布:2024-11-18 11:25:08 瀏覽:570
解壓循環動畫創意c4d 發布:2024-11-18 11:20:20 瀏覽:932
phpcurlcookie 發布:2024-11-18 11:20:10 瀏覽:78
橙子生存之旅伺服器ip 發布:2024-11-18 11:17:23 瀏覽:812
mysql密碼如何修改 發布:2024-11-18 11:11:06 瀏覽:424
php背景代碼 發布:2024-11-18 10:49:54 瀏覽:457