--中间表
create table wei_test01 as select 1 as sss from dual;
--结果表
create table wei_test02 as select * from wei_test01 where 1 = 2;
--存储过程
--输入 times 客户输入数量
create or replace procedure random_w(
times in number,
v_out out varchar2)
as
v_sum number;
begin
v_out := 1; --初始化输出值 1 为正常
execute immediate 'truncate table wei_test01';
execute immediate 'truncate table wei_test02';
commit;
for i in 1 .. times loop
insert into wei_test01
select dbms_random.value from dual;
commit;
end loop;
select sum(sss) into v_sum from wei_test01;
insert into wei_test02
select sss*(10/v_sum) from wei_test01;-- 这里的 总和为10 自己设置
commit;
end random_w;
-- 测试结果表的总和
select sum(sss) from wei_test02;
-- 测试结果表的总数
select count(1) from wei_test02;
create table wei_test01 as select 1 as sss from dual;
--结果表
create table wei_test02 as select * from wei_test01 where 1 = 2;
--存储过程
--输入 times 客户输入数量
create or replace procedure random_w(
times in number,
v_out out varchar2)
as
v_sum number;
begin
v_out := 1; --初始化输出值 1 为正常
execute immediate 'truncate table wei_test01';
execute immediate 'truncate table wei_test02';
commit;
for i in 1 .. times loop
insert into wei_test01
select dbms_random.value from dual;
commit;
end loop;
select sum(sss) into v_sum from wei_test01;
insert into wei_test02
select sss*(10/v_sum) from wei_test01;-- 这里的 总和为10 自己设置
commit;
end random_w;
-- 测试结果表的总和
select sum(sss) from wei_test02;
-- 测试结果表的总数
select count(1) from wei_test02;