System Packages Oracle PLSQL

SQL>
SQL>
SQL> CREATE TABLE MyTable (
  2    num_col    NUMBER,
  3    char_col   VARCHAR2(60)
  4    );
Table created.
SQL>
SQL> set serveroutput on
SQL>
SQL> CREATE OR REPLACE PROCEDURE InsertTemp(
  2    p_NumCol MyTable.num_col%TYPE,
  3    p_CharCol MyTable.char_col%TYPE) AS
  4  BEGIN
  5    INSERT INTO MyTable VALUES (p_NumCol, p_CharCol);
  6  END InsertTemp;
  7  /
Procedure created.
SQL> show errors
No errors.
SQL>
 First create a package with some initial state.
SQL> CREATE OR REPLACE PACKAGE MyPackage AS
  2    v_NumVar NUMBER := 10;
  3    v_StringVar VARCHAR2(50) := 'Hello World!';
  4  END MyPackage;
  5  /
Package created.
SQL> show errors
No errors.
SQL>
SQL> BEGIN
  2    InsertTemp(1, 'Initial values:');
  3    InsertTemp(2, 'v_NumVar = ' || MyPackage.v_NumVar);
  4    InsertTemp(3, 'v_StringVar = ' || MyPackage.v_StringVar);
  5  END;
  6  /
PL/SQL procedure successfully completed.
SQL>
SQL> BEGIN
  2    MyPackage.v_NumVar := 20;
  3    MyPackage.v_StringVar := 'Goodbye World!';
  4    InsertTemp(4, 'Changed values:');
  5    InsertTemp(5, 'v_NumVar = ' || MyPackage.v_NumVar);
  6    InsertTemp(6, 'v_StringVar = ' || MyPackage.v_StringVar);
  7
  8    DBMS_SESSION.RESET_PACKAGE;
  9
 10    InsertTemp(7, 'After RESET_PACKAGE:');
 11    InsertTemp(8, 'v_NumVar = ' || MyPackage.v_NumVar);
 12    InsertTemp(9, 'v_StringVar = ' || MyPackage.v_StringVar);
 13  END;
 14  /
PL/SQL procedure successfully completed.
SQL>
SQL> BEGIN
  2    InsertTemp(10, 'After RESET_PACKAGE and call:');
  3    InsertTemp(11, 'v_NumVar = ' || MyPackage.v_NumVar);
  4    InsertTemp(12, 'v_StringVar = ' || MyPackage.v_StringVar);
  5  END;
  6  /
PL/SQL procedure successfully completed.
SQL>
SQL> SELECT char_col
  2    FROM MyTable
  3    ORDER BY num_col;
CHAR_COL
------------------------------------------------------------
Initial values:
v_NumVar = 10
v_StringVar = Hello World!
Changed values:
v_NumVar = 20
v_StringVar = Goodbye World!
After RESET_PACKAGE:
v_NumVar = 20
v_StringVar = Goodbye World!
After RESET_PACKAGE and call:
v_NumVar = 10
CHAR_COL
------------------------------------------------------------
v_StringVar = Hello World!
12 rows selected.
SQL>
SQL>