回复 villager
没明白什么意思,是不是要再建个sp_setseed函数?
sophy 发表于 2011-3-21 14:19
把种子放表里。
create table seed
(
seed decimal(16)
);
set table seed MEMORY_RESIDENT;
insert into seed values( 1);
CREATE PROCEDURE sp_random(n integer) RETURNING INTEGER;
DEFINE vseed like seed.seed;
DEFINE d DECIMAL(20,0);
select seed into vseed from seed;
LET d = (vseed * 1103515245) + 12345;
LET vseed = d - 4294967296 * TRUNC(d / 4294967296);
update seed set seed=vseed;
RETURN MOD(TRUNC(vseed / 65536), n);
END PROCEDURE;