在oracle如何产生一列总和不变的随机数

xiaoxiao2021-02-28  71

--中间表 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;
转载请注明原文地址: https://www.6miu.com/read-77274.html

最新回复(0)