当前位置:首页 » 存储配置 » 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