PLS-00498: illegal use of a type before its declaration
Cause: A variable or constant was declared to be of a type whose declaration appears later in the compilation unit; or, a type or subtype was declared in terms of another type whose declaration appears later in the compilation unit.
Action: Ensure that the type declaration precedes its use in the variable/ constant/type declaration.