实际上存储过程向表中插入数据和sql执行的区别是不大的,只不过是存储过程是用loop等循环插入,之后顺序执行sql语句,不用命令行执行。
CREATE OR REPLACE PROCEDURE insert_data_4_pressure_3is
--Result1 VARCHAR2(50);
VAR_num number;
begin
VAR_num:=1;
while
VAR_num< 1000000
LOOP
insert into rp_trans_log_day
(trans_time,
trans_province,
trans_type,
score_range,
rule_name,
trans_num)
select to_date('2013/10/29', 'yyyy-mm-dd'),
round(dbms_randomvalue(1, 300)) || '省',
round(dbms_randomvalue(1, 800)) || '类型',
round(dbms_randomvalue(1, 100)) || '风险分值',
round(dbms_randomvalue(1, 300)) || '规则名称',
'1'
from dual;
commit;
VAR_num:=VAR_num+1;
end loop;
end insert_data_4_pressure_3;给你一个伪代码吧:使用oracle的
next_day()
函数
while
i
<
10
do
insert
test
(time)
values
(next_day(sysdate));
i++;
DONE;
关键是那个next_day函数
。。一切皆有可能。
如表A(id number,name varchar2(10),modi_date date,c1 number,c2,number);
表B(id varchar2(10),name number,modi_date varchar2(8),c5 varchar2(20))
insert into B(id,name,modi_date,c5)
select cast(id as number),cast(name as varchar2(10)),to_char(modi_date,'yyyymm'),
cast(null as varchar2(20))
from A
-- 因为表字段间数据类型不一样,所以不一样的要加上 cast( 字段 as 数据类型),
否则插入失败
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)