The specification is the package interface. It consists of declarations of types, variables, constants, exceptions, cursors, and subprograms that can be referenced from outside the package. The specification holds public declarations, which are visible outside the package. You must declare subprograms at the end of the specification after all other items (except pragmas that name a specific function; such pragmas must follow the function specification). If specification declares only types, constants, variables and exceptions the package body is unnecessary. Only subprograms and cursors have an underlying implementation.
If a procedure accepts parameters you will see the Parameters dialog box where you can assign initial values for procedure arguments. Once the routine is executed you will see appropriate record in the Output window.
If a package is invalid you have to compile it to make it work. To do this, choose Compile on the package’s shortcut menu. The whole package is considered invalid if at least one procedure or function that make up its body is invalid. Read more about the matter in the Working with Procedures and Functions topic.