%ROWTYPErecord to a user-defined record (and vice-versa) if their fields match in number and order, and corresponding fields have compatible datatypes. This is true even when the record is being passed as an argument to a subprogram.
Several players wrote with concerns about this, based on what they found in the documentation. I offersome of their comments below.
1. I have not seen anything in the documentation that specifies that names of fields must be identical. So if a player can provide that link, I would much appreciate it.
2. The second comment reflects, I believe, a mis-reading of the documentation (and makes me think they need to tighten it up). The documentation offers two different rules, but they are to be read as OR not AND. In other words, either the two variables can have the same record type OR their fields match in number and order. In fact, I (and, I expect, Oracle) would argue that the clause "only in these cases:" implies the OR. That is, they are presented as different "cases", not as a single set of requirements, all of which must be true.
Your thoughts and experience?