Oracle Error Message
PLS-00225: subprogram or cursor ‘string’ reference is out of scope
Reason for the Error
The prefix in a qualified name was a subprogram or cursor which was not in an enclosing scope; i.e., a subprogram or cursor name is being used as a scope qualifier for a reference to an entity (within that subprogram or cursor) that is not in scope. Example: declare x number; type t1 is record (a number); function f return t1 is a number; begin x := f.a; — legal use of function “f” as a scope qualifier; — resolves to local variable “a” in function “f”. x := f().a; — legal reference to component “a” of returned record end; begin x := f.a; — illegal use of function “f” as a scope qualifier x := f().a; — legal reference to component “a” of returned record end;
Solution
a) if the intention was to refer to a local variable of a non-enclosing function, this is not allowed; remove the reference b) if this is a parameterless function, and the the intention was to access a field of the result of a call to this function, then use empty parentheses in the call.