thanks
"Jan Kretzschmer" <j...@lyngso-industri.dk> wrote:
>Does anyone know if a random function exists for Oracle PL/SQL ?
>
>
>thanks
>
>
My Oracle7 RDBMS v7.3.2.2 came with Oracle Web Server 1.0.
There is a random generator in $ORACLE_HOME/ows/demo/util.sql.
HTH
--
Ludo Joris
RUCA - University of Antwerp, Belgium
lu...@ruca.ua.ac.be
There is no random function as such. If you are using PRO*C it has
a random generator. If not, try using the HSECS field from the
V$TIMER table which shows the time in hundreds of seconds.
Hope this helps !
Robert
robe...@compuserve.com
--
Thomas Kyte
tk...@us.oracle.com
Oracle Government
Bethesda MD
----------------------------------------------------------------------------
Opinions are mine and do not necessarily reflect those of Oracle
Corporation
Jan Kretzschmer <j...@lyngso-industri.dk> wrote in article
<01bc4e55$576429a0$ea02...@jak.lint.lyngso-industri.dk>...
> Does anyone know if a random function exists for Oracle PL/SQL ?
>
>
> thanks
>
>
>
create or replace package random
is
pragma restrict_references( random, WNDS, RNPS );
procedure srand( new_seed in number );
function rand return number;
pragma restrict_references( rand, WNDS );
procedure get_rand( r OUT number );
function rand_max( n IN number ) return number;
pragma restrict_references( rand_max, WNDS);
procedure get_rand_max( r OUT number, n IN number );
end random;
/
create or replace package body random
is
multiplier constant number := 22695477;
increment constant number := 1;
"2^32" constant number := 2 ** 32;
"2^16" constant number := 2 ** 16;
"0x7fff" constant number := 32767;
Seed number := 1;
--
procedure srand( new_seed in number )
is
begin
Seed := new_seed;
end srand;
--
function rand return number
is
begin
seed := mod( multiplier * seed + increment, "2^32" );
return bitand( seed/"2^16", "0x7fff" );
end rand;
--
procedure get_rand( r OUT number )
is
begin
r := rand;
end get_rand;
--
function rand_max( n IN number ) return number
is
begin
return mod( rand, n ) + 1;
end rand_max;
--
procedure get_rand_max( r OUT number, n IN number )
is
begin
r := rand_max( n );
end get_rand_max;
--
begin
select userenv( 'SESSIONID' ) into seed from dual;
end random;
/