Package initialization. : Package « PL SQL « Oracle PL / SQL






Package initialization.

    

SQL>
SQL>
SQL> CREATE OR REPLACE PACKAGE Random AS
  2
  3    PROCEDURE ChangeSeed(p_NewSeed IN NUMBER);
  4
  5    FUNCTION Rand RETURN NUMBER;
  6
  7    PROCEDURE GetRand(p_RandomNumber OUT NUMBER);
  8
  9    FUNCTION RandMax(p_MaxVal IN NUMBER) RETURN NUMBER;
 10
 11    PROCEDURE GetRandMax(p_RandomNumber OUT NUMBER,p_MaxVal IN NUMBER);
 12  END Random;
 13  /

Package created.

SQL>
SQL> CREATE OR REPLACE PACKAGE BODY Random AS
  2
  3    v_Multiplier  CONSTANT NUMBER := 2;
  4    v_Increment   CONSTANT NUMBER := 1;
  5
  6    v_Seed        number := 1;
  7
  8    PROCEDURE ChangeSeed(p_NewSeed IN NUMBER) IS
  9    BEGIN
 10      v_Seed := p_NewSeed;
 11    END ChangeSeed;
 12
 13    FUNCTION Rand RETURN NUMBER IS
 14    BEGIN
 15      v_Seed := MOD(v_Multiplier * v_Seed + v_Increment,(2 ** 32));
 16      RETURN BITAND(v_Seed/(2 ** 16), 32767);
 17    END Rand;
 18
 19    PROCEDURE GetRand(p_RandomNumber OUT NUMBER) IS
 20    BEGIN
 21      p_RandomNumber := Rand;
 22    END GetRand;
 23
 24    FUNCTION RandMax(p_MaxVal IN NUMBER) RETURN NUMBER IS
 25    BEGIN
 26      RETURN MOD(Rand, p_MaxVal) + 1;
 27    END RandMax;
 28
 29    PROCEDURE GetRandMax(p_RandomNumber OUT NUMBER,p_MaxVal IN NUMBER) IS
 30    BEGIN
 31      -- Simply call RandMax and return the value.
 32      p_RandomNumber := RandMax(p_MaxVal);
 33    END GetRandMax;
 34
 35  BEGIN
 36    ChangeSeed(TO_NUMBER(TO_CHAR(SYSDATE, 'SSSSS')));
 37  END Random;
 38  /

Package body created.

SQL>

   
    
    
    
  








Related examples in the same category

1.Create a package declaration and create its body after
2.Create a package level variable
3.call utitilities package
4.Package for output employee table and log message
5.Package with package level cursor variable
6.Overloading Packaged Subprograms
7.A PL/SQL package with two methods
8.Package level Exception
9.This package will not compile because the body does not match the specification.
10.dependencies between an anonymous calling block and package runtime state.
11.RESTRICT_REFERENCES pragma.
12.Without RESTRICT_REFERENCES pragma.
13.Persistance of packaged variables.
14.A package with one method
15.Package level variable as global level variable
16.Global definition
17.Student fetch package
18.Cursor operation between package functions
19.The pragma is not valid at the package level.
20.Create package and member cursor
21.Nested package reference
22.Overloaded packages.
23.Overloading based on user defined object types.
24.package RECURSION
25.Crosss reference between two packages
26.Counter package
27.Packages allows forward references, thus opening the possibilities for recursion.
28.Use package level type as global variables
29.Use package member variable to pass value