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

oracle批量插入存儲過程

發布時間: 2025-01-18 10:49:57

1. 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;

2. 各位大神們,我想在oracle後台執行多個存儲過程,請問要怎麼做呢

在Oracle後台執行多個存儲過程,可以採用創建一個合並存儲過程的方法。例如,你可以創建一個名為execmorepro的存儲過程,其代碼如下:

create or replace procere execmorepro as begin procere1; procere2; procere3; procere4; end;

這種方式將多個存儲過程整合在一起,便於統一管理和執行。如果你希望這些存儲過程能夠自動運行,可以進一步創建一個作業(Job),設置為定期或按需執行execmorepro過程。這樣,每當作業運行時,它就會自動調用execmorepro過程,進而依次執行所有包含的存儲過程。

在Oracle資料庫中,創建和管理作業可以通過DBMS_SCHEDULER包來實現。例如,你可以使用以下SQL語句創建一個作業:

begin dbms_scheler.create_job(job_name=>'my_job', job_type=>'plsql_block', job_action=>'execmorepro', start_date=>sysdate, repeat_interval=>'FREQ=DAILY; BYHOUR=10; BYMINUTE=0; BYSECOND=0', enabled=>true); end;

這將創建一個每天上午10點運行的作業,自動執行execmorepro過程,進而依次調用存儲過程procere1、procere2、procere3和procere4。

通過這種方式,你不僅能夠簡化存儲過程的執行過程,還能實現自動化管理和定時執行的需求,提高工作效率和系統的可維護性。

此外,對於更復雜的需求,如根據條件動態選擇執行哪些存儲過程,也可以在execmorepro過程中添加判斷邏輯,靈活控制執行流程。

3. oracle存儲過程批量執行

使用一個循環

begin
for r in (select a1,b1 from tt where 條件)loop
--執行a
a(r.a1,r.b1);
end loop
end;

4. 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;

5. 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;

6. 各位大神們,我想在oracle後台執行多個存儲過程,請問要怎麼做呢

你是需要定時執行嗎?你說的後台執行應該就是存儲過程自動執行吧:
1、定時執行你可以創建job,可以定時每個多久執行一次存儲過程(job中可以執行多個存儲過程,只需要使用『;』隔開);
2、你可以將你所有的存儲過程打包(pkg);

7. 請教執行多個oracle存儲過程的事務問題

你這樣屬於2個事務在操作一個表。如果表中有唯一鍵,會有一個過程失敗的。如果沒有唯一鍵,會寫入20000條記錄。但是如果存儲過程里操作的表是動態傳進去的。如果表名不同,同時執行多個這個存儲過程是沒有影響的。

8. oracle存儲過程循環插數據

有以下幾個步驟。
在表account中循環插入數據,id從1001到1005。createor
replace
procere
test
is--存儲過程,名稱為test。v_id
int;
--聲明變數。begin。v_id
:=1001;
--ACCOUNT_ID從1001插到1005。while
v_id
<=1005--設置插入的次數。loop。

9. oracle 存儲過程中 使用insert into Table (select) 進行數據批量添加 執行後無數據 但單獨將上述insert

存貯過程運行了嗎?
不會是只創建了事吧!

熱點內容
蒙皮演算法 發布:2025-01-18 12:57:53 瀏覽:549
常用的r語言編譯器 發布:2025-01-18 12:55:05 瀏覽:199
同人志解壓密碼 發布:2025-01-18 12:55:05 瀏覽:876
qq密碼不記得怎麼辦 發布:2025-01-18 12:48:22 瀏覽:448
安卓系統停用怎麼辦 發布:2025-01-18 12:35:49 瀏覽:260
五菱宏光星辰哪個配置最值得買 發布:2025-01-18 12:29:43 瀏覽:595
鴻蒙系統為什麼完美兼容安卓應用 發布:2025-01-18 12:16:02 瀏覽:856
數分轉演算法 發布:2025-01-18 12:08:31 瀏覽:612
iphone硬體為什麼比安卓更好 發布:2025-01-18 12:08:29 瀏覽:822
醫院冷熱源配置有哪些 發布:2025-01-18 12:08:26 瀏覽:167