OPAQUE datatype is used only by internal functions that make calls to other functions. It is not datatype actually, but some kind of instruction to make no assumptions about return type. Actual meaning depends on what function is it - trigger, constraint etc. You cannot use OPAQUE functions in queries.