如何在oracle产生一系列总和不变的随机数
需求是产生一系列总和不变的随机数,用oracle存储过程实现。下面是脚本 --中间表 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; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |