Re: PRAGMA Question

From: Rmplstlskn <Rmplstlskn_at_iei.com>
Date: 1996/11/26
Message-ID: <01bbdbe4$48a63860$7525f3c6_at_linda.IEI.COM>#1/1


I compiled this code by getting rid of these lines [2nd and 3rd to last lines]
  > BEGIN
  > ChangeSeed(TO_NUMBER(TO_CHAR(SYSDATE,'SSSSS')));

-- 
RMPLSTLSKN_at_iei.com
     my Jeep is dirty

Scott Humphrey <xsah1_at_sunyit.edu> wrote in article
<E1HIvL.78E_at_sunyit.edu>...

> I need some help regarding pragmas. I keyed a program directly from the
> Oracle PL/SQL Programming book for generating random numbers as follows:
>
>
> CREATE OR REPLACE PACKAGE RANDOM AS
>
> PROCEDURE ChangeSeed(p_NewSeed IN NUMBER);
>
> FUNCTION Rand RETURN NUMBER;
> PRAGMA RESTRICT_REFERENCES(rand,WNDS);
>
> PROCEDURE GetRand(p_RandomNumber OUT NUMBER);
>
> FUNCTION RandMax(P_MaxVal IN NUMBER) RETURN NUMBER;
> PRAGMA RESTRICT_REFERENCES(RandMax,WNDS);
>
> PROCEDURE GetRandMax(p_RandomNumber OUT NUMBER,
> p_MaxVal IN NUMBER);
> END Random;
> /
> CREATE OR REPLACE PACKAGE BODY RANDOM AS
>
> v_Multiplier CONSTANT NUMBER := 22695477;
> v_Increment CONSTANT NUMBER := 1;
> v_seed number := 1;
>
> Procedure ChangeSeed(p_NewSeed IN NUMBER) IS
> BEGIN
> v_seed := p_newSeed;
> END ChangeSeed;
>
> FUNCTION Rand RETURN NUMBER IS
> BEGIN
> v_seed := MOD(v_multiplier * v_seed + v_increment,(2 ** 32));
> RETURN BITAND (v_seed/(2 ** 16), 32767);
> END Rand;
>
> PROCEDURE GetRand (p_RandomNumber OUT NUMBER) IS
> BEGIN
> p_randomNumber := Rand;
> END GetRand;
>
> FUNCTION RandMax (p_MaxVal IN NUMBER) RETURN NUMBER IS
> BEGIN
> RETURN MOD (Rand,p_MaxVal) + 1;
> END RandMax;
>
> PROCEDURE GetRandMax(p_RandomNumber OUT NUMBER,
> p_MaxVal IN NUMBER) IS
> BEGIN
> p_RandomNumber := RandMax(P_MaxVal);
> END GetRandMax;
>
> BEGIN
> ChangeSeed(TO_NUMBER(TO_CHAR(SYSDATE,'SSSSS')));
> END Random;
> /
>
> This gives me the error
>
> PLS-00452 'rand' violates its associated pragma.
>
> Can someone explain why I get these pragma errors despite copying it
> right from the Oracle Press book.
>
> Thanks,
>
> Scott Humphrey
> Senior Programmer Analyst
> xsah1_at_sunyit.edu
>
>
>
Received on Tue Nov 26 1996 - 00:00:00 CET

Original text of this message